비고
이 문서는 .NET Framework에만 적용됩니다. .NET 6 이상 버전을 포함하여 .NET의 최신 구현에는 적용되지 않습니다.
추적 스위치를 사용하면 추적 출력을 활성화, 비활성화 및 필터링할 수 있습니다. 코드에 존재하며 .config 파일을 통해 외부에서 구성할 수 있는 개체입니다. .NET Framework에는 BooleanSwitch 클래스, TraceSwitch 클래스, 그리고 SourceSwitch 클래스의 세 가지 유형의 추적 스위치가 제공됩니다. 클래스는 BooleanSwitch 다양한 추적 문을 사용하거나 사용하지 않도록 설정하는 토글 스위치 역할을 합니다. TraceSwitch 및 SourceSwitch 클래스를 사용하면 특정 추적 수준에 대해 추적 스위치를 사용하도록 설정하여 해당 수준에 지정된 메시지와 그 아래의 모든 수준이 표시되도록 TraceTraceSource 할 수 있습니다. 스위치를 사용하지 않도록 설정하면 추적 메시지가 표시되지 않습니다. 이러한 모든 클래스는 사용자가 개발한 스위치와 마찬가지로 추상(MustInherit) 클래스 Switch에서 파생됩니다.
추적 스위치는 정보를 필터링하는 데 유용할 수 있습니다. 예를 들어 데이터 액세스 모듈의 모든 추적 메시지를 볼 수 있지만 애플리케이션의 나머지 부분에는 오류 메시지만 표시할 수 있습니다. 이 경우 데이터 액세스 모듈에 추적 스위치 1개와 애플리케이션의 나머지 부분에 대해 하나의 스위치를 사용합니다. .config 파일을 사용하여 적절한 설정으로의 스위치를 구성하면 받은 추적 메시지 유형을 제어할 수 있습니다. 자세한 내용은 방법: 추적 스위치 만들기, 초기화 및 구성을 참조하세요.
일반적으로 배포된 애플리케이션은 스위치를 사용하지 않도록 설정하여 실행되므로 사용자가 화면에 나타나거나 애플리케이션이 실행될 때 로그 파일을 채우는 것과 관련이 없는 추적 메시지를 많이 관찰할 필요가 없습니다. 애플리케이션 실행 중에 문제가 발생하면 애플리케이션을 중지하고 스위치를 사용하도록 설정한 다음 애플리케이션을 다시 시작할 수 있습니다. 그런 다음 추적 메시지가 표시됩니다.
스위치를 사용하려면 먼저 BooleanSwitch 클래스, TraceSwitch 클래스 또는 개발자 정의 스위치 클래스에서 스위치 개체를 만들어야 합니다. 개발자 정의 스위치를 만드는 방법에 대한 자세한 내용은 .NET Framework 참조의 클래스를 참조 Switch 하세요. 그런 다음 스위치 개체를 사용할 시기를 지정하는 구성 값을 설정합니다. 그런 다음 다양한 추적 (또는 디버그) 추적 메서드에서 스위치 개체의 설정을 테스트합니다.
추적 수준
TraceSwitch를 사용하는 경우 추가 고려 사항이 있습니다. TraceSwitch 개체에는 스위치가 특정 수준으로 설정되었는지 여부를 나타내는 부울 값을 반환하는 네 가지 속성이 있습니다.
수준을 사용하면 받는 추적 정보의 양을 문제를 해결하는 데 필요한 정보로만 제한할 수 있습니다. 추적 스위치를 적절한 추적 수준으로 설정하고 구성하여 추적 출력에서 원하는 세부 수준을 지정합니다. 오류 메시지, 경고 메시지, 정보 메시지, 자세한 추적 메시지를 받거나, 아무 메시지도 받지 않을 수 있습니다.
각 수준과 연결할 메시지 종류를 결정하는 것은 전적으로 사용자에게 달려 있습니다. 일반적으로 추적 메시지의 내용은 각 수준과 연결하는 항목에 따라 달라지지만 수준 간의 차이점을 결정합니다. 예를 들어 수준 3(정보)에서 문제에 대한 자세한 설명을 제공할 수 있지만 수준 1(오류)에서 오류 참조 번호만 제공할 수 있습니다. 애플리케이션에서 가장 잘 작동하는 체계를 결정하는 것은 전적으로 사용자의 달려 있습니다.
이러한 속성은 TraceLevel 열거형의 값 1~4에 해당합니다. 다음 표에서는 TraceLevel 열거형의 수준 및 해당 값을 나열합니다.
| 열거형 값 | 정수 값 | 표시되는 메시지 유형(또는 지정된 출력 대상에 기록됨) |
|---|---|---|
| 끄기 | 0 | 없음 |
| 오류 | 1 | 오류 메시지만 |
| 경고 | 2 | 경고 메시지 및 오류 메시지 |
| 정보 | 3 | 정보 메시지, 경고 메시지 및 오류 메시지 |
| 장황한 | 4 | 자세한 정보 메시지, 정보 메시지, 경고 메시지 및 오류 메시지 |
TraceSwitch 속성은 스위치의 최대 추적 수준을 나타냅니다. 즉, 추적 정보는 모든 하위 수준뿐만 아니라 지정된 수준에 대해서도 기록됩니다. 예를 들어 TraceInfo 가 true이면 TraceError 및 TraceWarning 도 true 이지만 TraceVerbose 는 false일 수 있습니다.
이러한 속성은 읽기 전용입니다. TraceSwitch 개체는 TraceLevel 속성이 설정되면 자동으로 설정합니다. 다음은 그 예입니다.
Dim myTraceSwitch As New TraceSwitch("SwitchOne", "The first switch")
myTraceSwitch.Level = TraceLevel.Info
' This message box displays true, because setting the level to
' TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString())
' This messagebox displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString())
System.Diagnostics.TraceSwitch myTraceSwitch =
new System.Diagnostics.TraceSwitch("SwitchOne", "The first switch");
myTraceSwitch.Level = System.Diagnostics.TraceLevel.Info;
// This message box displays true, because setting the level to
// TraceLevel.Info sets all lower levels to true as well.
MessageBox.Show(myTraceSwitch.TraceWarning.ToString());
// This message box displays false.
MessageBox.Show(myTraceSwitch.TraceVerbose.ToString());
Developer-Defined 스위치
BooleanSwitch 및 TraceSwitch를 제공하는 것 외에도 Switch 클래스에서 상속하고 사용자 지정된 메서드를 사용하여 기본 클래스 메서드를 재정의하여 고유한 스위치를 정의할 수 있습니다. 개발자 정의 스위치를 만드는 방법에 대한 자세한 내용은 .NET Framework 참조의 클래스를 참조 Switch 하세요.
참고하십시오
.NET