이 설명서는 보관되지만 유지 되지 않습니다.

TraceSwitch 클래스

업데이트: 2007년 11월

코드를 다시 컴파일하지 않고 추적 및 디버그 출력을 제어하는 여러 수준의 스위치를 제공합니다.

네임스페이스:  System.Diagnostics
어셈블리:  System(System.dll)

public class TraceSwitch : Switch
public class TraceSwitch extends Switch
public class TraceSwitch extends Switch

추적 스위치를 사용하여 메시지를 중요도에 따라 필터링할 수 있습니다. TraceSwitch 클래스는 스위치의 수준을 테스트하는 TraceError, TraceWarning, TraceInfoTraceVerbose 속성을 제공합니다. Level 속성은 스위치의 TraceLevel을 가져오거나 설정합니다.

응용 프로그램 구성 파일을 통해 TraceSwitch의 수준을 설정한 다음 응용 프로그램에서 구성된 TraceSwitch 수준을 사용할 수 있습니다. 또는 코드에서 TraceSwitch를 만들고 수준을 직접 설정하여 코드의 특정 섹션을 조정할 수 있습니다.

TraceSwitch를 구성하려면 응용 프로그램의 이름에 해당하는 구성 파일을 편집합니다. 이 파일에서 스위치를 추가 또는 제거하거나, 스위치 값을 설정하거나, 응용 프로그램에서 이전에 설정한 모든 스위치를 지울 수 있습니다. 구성 파일의 형식은 다음 예제와 같아야 합니다.

<configuration>
  <system.diagnostics>
    <switches>
      <add name="mySwitch" value="1" />
    </switches>
  </system.diagnostics>
</configuration>

이 구성 섹션에서는 DisplayNamemySwitch로 설정되고 Level이 열거형 값 TraceLevel.Error에 해당하는 1로 설정된 TraceSwitch를 정의합니다.

참고:

.NET Framework 버전 2.0에서 텍스트를 사용하여 스위치 값을 지정할 수 있습니다. 예를 들어, BooleanSwitchtrue를 사용하거나 TraceSwitchError 등의 열거형 값을 나타내는 텍스트를 사용할 수 있습니다. <add name="mySwitch" value="Error" /> 줄은 <add name="mySwitch" value="1" />과 동일합니다.

응용 프로그램에서 다음 예제와 같이 동일한 이름의 TraceSwitch를 만들어서 구성된 스위치 수준을 사용할 수 있습니다.

private static TraceSwitch appSwitch = new TraceSwitch("mySwitch", 
"Switch in config file");

public static void Main(string[] args) 
{
    //...
    Console.WriteLine("Trace switch {0} configured as {1}", 
    appSwitch.DisplayName, appSwitch.Level.ToString());
    if (appSwitch.TraceError)
    {
        //...
    }
}

기본적으로 스위치 Level 속성은 구성 파일에 지정된 값을 사용하여 설정됩니다. TraceSwitch 생성자가 구성 파일에서 초기 스위치 설정을 찾지 못할 경우 기본적으로 새 스위치의 LevelTraceLevel.Off로 설정됩니다.

스위치를 사용하려면 추적 또는 디버깅 기능을 활성화해야 합니다. 다음 구문은 컴파일러 관련 구문입니다. C# 또는 Visual Basic 이외의 컴파일러를 사용하는 경우 해당 컴파일러의 설명서를 참조하십시오.

  • C#에서 디버깅을 활성화하려면 코드를 컴파일할 때 /d:DEBUG 플래그를 컴파일러 명령줄에 추가하거나, #define DEBUG를 파일 맨 위에 추가합니다. Visual Basic을 사용하는 경우 컴파일러 명령줄에 /d:DEBUG=True 플래그를 추가합니다.

  • C#에서 추적을 활성화하려면 코드를 컴파일할 때 /d:TRACE 플래그를 컴파일러 명령줄에 추가하거나 #define TRACE를 파일 맨 위에 추가합니다. Visual Basic을 사용하는 경우 컴파일러 명령줄에 /d:TRACE=True 플래그를 추가합니다.

참고:

이러한 디버그 및 추적 컴파일러 스위치는 TraceSwitch 클래스만 사용할 때는 필요하지 않으며 조건부로 컴파일되는 Trace 또는 Debug 메서드와 함께 사용될 때만 필요합니다.

응용 프로그램 구현에 대한 자세한 내용은 DebugTrace를 참조하십시오. 추적 스위치 구성 및 사용에 대한 자세한 내용은 추적 스위치를 참조하십시오.

참고:

성능을 향상시키려면 클래스에서 TraceSwitch 멤버를 static으로 설정합니다.

TopicLocation
방법: 추적 스위치 구성.NET Framework: Debugging
방법: 추적 스위치 만들기 및 초기화.NET Framework: Debugging
방법: 추적 스위치 구성.NET Framework: 디버깅
방법: 추적 스위치 만들기 및 초기화.NET Framework: 디버깅

다음 코드 예제에서는 새 TraceSwitch를 만들고 해당 스위치를 사용하여 오류 메시지의 출력 여부를 결정합니다. 클래스 수준에서 스위치가 만들어집니다. MyMethod에서는 Level 속성이 TraceLevel.Error 이상으로 설정된 경우 첫 번째 오류 메시지를 씁니다. 그러나 LevelTraceLevel.Verbose보다 작은 경우에는 MyMethod에서 두 번째 오류 메시지를 쓰지 않습니다.

//Class-level declaration.
 /* Create a TraceSwitch to use in the entire application.*/
 static TraceSwitch mySwitch = new TraceSwitch("General", "Entire Application");

 static public void MyMethod() {
    // Write the message if the TraceSwitch level is set to Error or higher.
    if(mySwitch.TraceError)
       Console.WriteLine("My error message.");

    // Write the message if the TraceSwitch level is set to Verbose.
    if(mySwitch.TraceVerbose)
       Console.WriteLine("My second error message.");
 }

 public static void Main(string[] args) {
    // Run the method that prints error messages based on the switch level.
    MyMethod();
 }



// Class-level declaration.
/* Create a TraceSwitch to use in the entire application.
 */
private static TraceSwitch mySwitch =
    new TraceSwitch("General", "Entire Application");

public static void MyMethod()
{
    //Write the message if the TraceSwitch level is set to Error or higher.
    if (mySwitch.get_TraceError()) {
        Console.WriteLine("My error message.");
    }

    // Write the message if the TraceSwitch level is set to Verbose.
    if (mySwitch.get_TraceVerbose()) {
        Console.WriteLine("My second error message.");
    }
} //MyMethod

public static void main(String[] args)
{
    // Run the method that prints error messages based on the switch level.
    MyMethod();
} //main


System.Object
  System.Diagnostics.Switch
    System.Diagnostics.TraceSwitch

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 인터페이스 멤버는 스레드로부터 안전하지 않습니다.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5, 3.0, 2.0, 1.1, 1.0에서 지원
표시: