방법: 추적 스위치 구성
업데이트: 2007년 11월
응용 프로그램이 배포된 후에도 응용 프로그램에서 추적 스위치를 구성하여 추적 출력을 활성화하거나 비활성화할 수 있습니다. 스위치를 구성한다는 것은 스위치가 초기화된 후 외부 소스에서 스위치 값을 변경한다는 의미입니다. 구성 파일을 사용하여 스위치 개체의 값을 변경할 수 있습니다. 추적 스위치를 설정 및 해제하거나 수준을 설정하도록 구성하여 수신기로 전달되는 메시지의 양과 형식을 결정합니다.
스위치는 .config 파일을 사용하여 구성됩니다. 웹 응용 프로그램의 경우에는 프로젝트와 관련된 Web.config 파일입니다. Windows 응용 프로그램에서 이 파일의 이름은 (응용 프로그램 이름).exe.config입니다. 배포된 응용 프로그램에서 이 파일은 실행 파일과 같은 폴더에 있어야 합니다.
응용 프로그램은 스위치의 인스턴스를 만드는 코드를 처음으로 실행할 때 명명된 스위치에 대한 추적 수준 정보가 있는지 구성 파일을 검사합니다. 추적 시스템은 응용 프로그램이 스위치를 처음으로 만들 때 단 한 번만 특정 스위치에 대해 구성 파일을 조사합니다.
배포된 응용 프로그램에서는 응용 프로그램이 실행되고 있지 않을 때 스위치 개체를 다시 구성하여 추적 코드를 활성화합니다. 일반적으로 이 경우에는 스위치 개체를 설정 및 해제하거나 추적 수준을 변경한 다음 응용 프로그램을 다시 시작해야 합니다.
또한 스위치의 인스턴스를 만들 때 displayName 및 description 인수를 지정하여 스위치를 초기화합니다. 생성자의 displayName 인수는 Switch 클래스 인스턴스의 Switch.DisplayName 속성을 설정합니다. displayName은 .config 파일에서 스위치를 구성하는 데 사용되는 이름이고 description 인수는 스위치에 대한 간단한 설명과 스위치가 제어하는 메시지를 반환해야 합니다.
구성할 스위치 이름을 지정하는 것 외에 스위치의 값도 지정해야 합니다. 이 값은 정수입니다. BooleanSwitch의 경우 값 0은 Off에 해당하고 0이 아닌 값은 On에 해당합니다. TraceSwitch의 경우 0,1,2,3 및 4는 각각 Off, Error, Warning, Info 및 Verbose에 해당합니다. 4보다 큰 수는 모두 Verbose로 처리되고 0보다 작은 수는 모두 Off로 처리됩니다.
참고: |
---|
.NET Framework 버전 2.0에서는 텍스트를 사용하여 스위치 값을 지정할 수 있습니다. 예를 들어, BooleanSwitch에 true를 지정하거나, TraceSwitch에 Error를 지정하는 것과 같이 열거형 값을 나타내는 텍스트를 지정할 수 있습니다. <add name="myTraceSwitch" value="Error" /> 줄은 <add name="myTraceSwitch" value="1" />과 같습니다. |
최종 사용자가 응용 프로그램의 추적 스위치를 구성할 수 있도록 하려면 스위치에 대한 자세한 설명을 응용 프로그램에 제공해야 합니다. 어떤 스위치가 어떤 내용을 제어하는지와 스위치를 설정 및 해제하는 방법에 대해 자세히 설명해야 합니다. 또한 주석에 해당 도움말이 있는 .config 파일을 최종 사용자에게 제공해야 합니다.
추적 스위치를 만들고 구성하려면
코드에 스위치를 만듭니다. 자세한 내용은 추적 스위치 만들기 및 초기화를 참조하십시오.
프로젝트에 app.config 또는 Web.config 등의 구성 파일이 포함되어 있지 않은 경우 프로젝트 메뉴에서 새 항목 추가를 선택합니다.
Visual Basic:새 항목 추가 대화 상자에서 응용 프로그램 구성 파일을 선택합니다.
응용 프로그램 구성 파일이 만들어지고 열립니다. 이 문서는 루트 요소가 <configuration>.인 XML 문서입니다.
Visual C#:새 항목 추가 대화 상자에서 XML 파일을 선택합니다. 이 파일의 이름을 app.config로 지정합니다. XML 편집기에서 XML 선언 뒤에 다음 XML을 추가합니다.
<configuration> </configuration>
프로젝트가 컴파일되면 app.config 파일은 프로젝트 출력 폴더에 복사되고 이름이 applicationname.exe.config로 변경됩니다.
<configuration> 태그와 </configuration> 태그 사이에 스위치를 구성할 적절한 XML을 추가합니다. 다음 예제에서는 DisplayName 속성이 DataMessageSwitch로 설정된 BooleanSwitch와 DisplayName 속성이 TraceLevelSwitch로 설정된 TraceSwitch를 보여 줍니다.
<system.diagnostics> <switches> <add name="DataMessagesSwitch" value="0" /> <add name="TraceLevelSwitch" value="0" /> </switches> </system.diagnostics>
이 구성에서는 두 스위치가 모두 해제되어 있습니다.
앞의 예제에 나오는 DataMessagesSwitch와 같은 BooleanSwitch를 설정해야 하는 경우에는 Value를 0이 아닌 정수로 변경합니다.
앞의 예제에 나오는 TraceLevelSwitch와 같은 TraceSwitch를 설정해야 하는 경우에는 Value를 1에서 4 사이의 적절한 수준 설정으로 변경합니다.
스위치를 적절하게 구성하기 위해 변경해야 하는 값을 최종 사용자가 분명하게 이해할 수 있도록 .config 파일에 주석을 추가합니다.
다음 예제에서는 주석을 포함한 최종 코드의 모습을 보여 줍니다.
<system.diagnostics> <switches> <!-- This switch controls data messages. In order to receive data trace messages, change value="0" to value="1" --> <add name="DataMessagesSwitch" value="0" /> <!-- This switch controls general messages. In order to receive general trace messages change the value to the appropriate level. "1" gives error messages, "2" gives errors and warnings, "3" gives more detailed error information, and "4" gives verbose trace information --> <add name="TraceLevelSwitch" value="0" /> </switches> </system.diagnostics>