다음을 통해 공유


방법: 추적 수신기 만들기 및 초기화

System.Diagnostics.DebugSystem.Diagnostics.Trace 클래스는 메시지를 받아서 처리하는 수신기라는 개체에 메시지를 보냅니다. 추적 또는 디버깅을 사용하면 이러한 수신기 중 하나인 System.Diagnostics.DefaultTraceListener가 자동으로 만들어지고 초기화됩니다. Trace 또는 Debug 출력을 추가 소스에 보내려면 추가 추적 수신기를 만들고 초기화해야 합니다.

수신기를 만들 때는 응용 프로그램이 필요로 하는 내용을 반영해야 합니다. 예를 들어 모든 추적 출력에 대한 텍스트 레코드가 필요한 경우 활성화되면 모든 출력을 새 텍스트 파일에 쓰는 TextWriterTraceListener 수신기를 만듭니다. 반면에 응용 프로그램이 실행되는 동안에만 출력을 보려면 모든 출력을 콘솔 창으로 보내는 ConsoleTraceListener 수신기를 만듭니다. EventLogTraceListener는 추적 출력을 이벤트 로그로 보낼 수 있습니다. 자세한 내용은 추적 수신기를 참조하십시오.

응용 프로그램 구성 파일 또는 코드에 추적 수신기를 만들 수 있습니다. 코드를 변경할 필요 없이 추적 수신기를 추가, 수정 또는 제거할 수 있으므로 응용 프로그램 구성 파일을 사용하는 것이 좋습니다.

구성 파일을 사용하여 추적 수신기를 만들어서 사용하려면

  1. 응용 프로그램 구성 파일에서 추적 수신기를 선언합니다. 만들고 있는 수신기에 다른 개체가 필요하면 그 개체도 선언합니다. 다음 예제에서는 텍스트 파일 TextWriterOutput.log에 쓰는 myListener라는 수신기를 만드는 방법을 보여 줍니다.

    <configuration>
      <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
            <remove name="Default" />
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
    
  2. 추적 수신기에 메시지를 쓰려면 코드에서 Trace 클래스를 사용합니다.

    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

코드에서 추적 수신기를 만들어서 사용하려면

  • Listeners 컬렉션에 추적 수신기를 추가하고 추적 정보를 수신기에 보냅니다.

    Trace.Listeners.Add(New TextWriterTraceListener("TextWriterOutput.log", "myListener"))
    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

    -또는-

  • 수신기가 추적 출력을 받지 않도록 하려면 추적 수신기를 Listeners 컬렉션에 추가하지 마십시오. 수신기의 자체 출력 메서드를 호출하면 Listeners 컬렉션과 관계없이 수신기를 통해 출력을 내보낼 수 있습니다. 다음 예제에서는 Listeners 컬렉션에 없는 수신기에 줄을 쓰는 방법을 보여 줍니다.

    Dim myListener As New TextWriterTraceListener("TextWriterOutput.log", "myListener")
    myListener.WriteLine("Test message.")
    ' You must close or flush the trace listener to empty the output buffer.
    myListener.Flush()
    
    TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput.log", "myListener");
    myListener.WriteLine("Test message.");
    // You must close or flush the trace listener to empty the output buffer.
    myListener.Flush();
    

참고 항목

작업

방법: 응용 프로그램에서 코드 추적

방법: 응용 프로그램 코드에 추적 문 추가

개념

추적 수신기

추적 스위치

기타 리소스

응용 프로그램 추적 및 조율