다음을 통해 공유


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

업데이트: 2007년 11월

DebugTrace 클래스는 메시지를 받아서 처리하는 수신기라는 개체에 메시지를 보냅니다. 추적 또는 디버깅이 활성화되면 DefaultTraceListener와 같은 수신기가 자동으로 만들어지고 초기화됩니다. 자세한 내용은 추적 수신기를 참조하십시오. Trace 또는 Debug 출력을 추가 소스에 보내려면 추가 추적 수신기를 만들고 초기화해야 합니다.

수신기를 만들 때는 개인이 필요로 하는 내용을 반영해야 합니다. 예를 들어, 모든 추적 출력의 텍스트 레코드를 필요로 할 수도 있습니다. 이 경우에는 활성화되면 모든 출력을 새 텍스트 파일에 쓰는 수신기를 만듭니다. 반면에 응용 프로그램이 실행되는 동안 출력을 보기만 할 수도 있습니다. 이 경우에는 모든 출력을 콘솔 창으로 보내는 수신기를 만들면 됩니다. EventLogTraceListener는 추적 출력을 이벤트 로그로 보낼 수 있으며 TextWriterTraceListener는 추적 출력을 스트림에 쓸 수 있습니다.

추적 수신기를 만들고 초기화하려면

  1. 추적 수신기를 선언합니다. 만들고 있는 특정 수신기에 다른 개체가 필요하면 그 개체도 선언합니다. 다음 예제에서는 텍스트 파일에 쓰는 수신기를 만드는 방법을 보여 줍니다.

    ' Creates the text file that the trace listener will write to.
    Dim myTraceLog As New System.IO.FileStream("C:\myTraceLog.txt", _
       IO.FileMode.OpenOrCreate)
    ' Creates the new trace listener
    Dim myListener As New TextWriterTraceListener(myTraceLog)
    
    // Creates the text file that the trace listener will write to.
    System.IO.FileStream myTraceLog = new 
       System.IO.FileStream("C:\\myTraceLog.txt", 
       System.IO.FileMode.OpenOrCreate);
    // Creates the new trace listener.
    System.Diagnostics.TextWriterTraceListener myListener = 
       new System.Diagnostics.TextWriterTraceListener(myTraceLog);
    
  2. 추적 출력을 내보냅니다.

    • 수신기가 모든 추적 출력을 받도록 하려면 추적 수신기를 Listeners 컬렉션에 추가하십시오.

      다음 예제에서는 수신기를 Listeners 컬렉션에 추가하는 방법을 보여 줍니다.

      Trace.Listeners.Add(myListener)
      
      System.Diagnostics.Trace.Listeners.Add(myListener);
      

      - 또는 -

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

      myListener.WriteLine( _
         "This output will not go to the Listeners collection")
      
      myListener.WriteLine( 
         "This output will not go to the Listeners collection");
      
  3. 수신기가 Listeners 컬렉션의 멤버가 아닌 경우에는 Flush 메서드를 호출하여 출력을 기록해야 할 수도 있습니다.

    ' Flushes the buffers of all listeners in the Listeners collection.
    Trace.Flush()
    ' Flushes only the buffer of myListener.
    myListener.Flush()
    
    // Flushes the buffers of all listeners in the Listeners collection.
    System.Diagnostics.Trace.Flush();
    // Flushes only the buffer of myListener.
    myListener.Flush();
    

참고 항목

작업

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

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

개념

추적 수신기

추적 스위치

기타 리소스

응용 프로그램 추적 및 조율