비고
이 문서는 .NET Framework에만 적용됩니다. .NET 6 이상 버전을 포함하여 .NET의 최신 구현에는 적용되지 않습니다.
추적, 디버그 및 TraceSource를 사용하는 경우 전송된 메시지를 수집하고 기록하는 메커니즘이 있어야 합니다. 추적 메시지는 수신기에 의해 수신 됩니다. 수신기의 목적은 추적 메시지를 수집, 저장 및 라우팅하는 것입니다. 수신기는 추적 출력을 로그, 창 또는 텍스트 파일과 같은 적절한 대상으로 전달합니다.
수신기는 디버그, 추적 및 TraceSource 클래스에서 사용할 수 있으며, 각 수신기는 다양한 수신기 개체에 출력을 보낼 수 있습니다. 다음은 일반적으로 사용되는 미리 정의된 수신기입니다.
TextWriterTraceListener 클래스의 인스턴스 또는 TextWriter 클래스인 모든 항목으로 출력이 리디렉션됩니다. 콘솔 또는 파일에 쓸 수 있는 것은 클래스 Stream 때문입니다.
출력 EventLogTraceListener 을 이벤트 로그로 리디렉션합니다.
DefaultTraceListener 발신자는 Write 및 WriteLine 메시지를 OutputDebugString과 Debugger.Log 메서드로 전송한다. Visual Studio에서 이렇게 하면 디버깅 메시지가 출력 창에 표시됩니다. 실패 및 실패한 Assert 메시지도 OutputDebugString Windows API 및 Debugger.Log 메서드로 내보내고 메시지 상자가 표시됩니다. DefaultTraceListener는 모든 컬렉션에 자동으로 포함되고 수신기만 자동으로 포함되므로 이 동작은 디버그 및
Listeners
메시지의 기본 동작입니다.추적 ConsoleTraceListener 또는 디버깅 출력을 표준 출력 또는 표준 오류 스트림으로 전달합니다.
DelimitedListTraceListener 추적 또는 디버깅 출력을 스트림 작성기와 같은 텍스트 작성기 또는 파일 스트림과 같은 스트림으로 전달합니다. 추적 출력은 속성에 지정된 Delimiter 구분 기호를 사용하는 구분된 텍스트 형식입니다.
XmlWriterTraceListener은 TextWriter 또는 Stream와 같은 FileStream에 XML로 인코딩된 데이터로서 추적 또는 디버깅 출력을 전달합니다.
DefaultTraceListener, 추적 및 출력을 수신하는 수신기 외에 TraceSource 수신기를 원하는 경우 컬렉션에 Listeners
추가해야 합니다. 자세한 내용은 방법: 추적 수신기 만들기 및 초기화 및 방법: 추적 수신기에서 TraceSource 및 필터 사용
수신기 컬렉션의 모든 수신기는 추적 출력 메서드에서 동일한 메시지를 가져옵니다. 예를 들어 TextWriterTraceListener 와 EventLogTraceListener라는 두 개의 수신기를 설정한다고 가정합니다. 각 수신기는 동일한 메시지를 받습니다.
TextWriterTraceListener는 출력을 스트림으로 전달하고 EventLogTraceListener는 해당 출력을 이벤트 로그로 전달합니다.
다음 예제에서는 수신기 컬렉션에 출력을 보내는 방법을 보여줍니다.
' Use this example when debugging.
Debug.WriteLine("Error in Widget 42")
' Use this example when tracing.
Trace.WriteLine("Error in Widget 42")
// Use this example when debugging.
System.Diagnostics.Debug.WriteLine("Error in Widget 42");
// Use this example when tracing.
System.Diagnostics.Trace.WriteLine("Error in Widget 42");
디버그 및 추적은 동일한 수신기 컬렉션을 공유하므로 애플리케이션의 Debug.Listeners 컬렉션에 수신기 개체를 추가하면 Trace.Listeners 컬렉션에도 추가됩니다.
다음 예제에서는 수신기를 사용하여 추적 정보를 콘솔로 보내는 방법을 보여줍니다.
Trace.Listeners.Clear()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
System.Diagnostics.Trace.Listeners.Clear();
System.Diagnostics.Trace.Listeners.Add(
new System.Diagnostics.TextWriterTraceListener(Console.Out));
Developer-Defined 수신기
TraceListener 기본 클래스에서 상속하고 사용자 지정된 메서드를 사용하여 해당 메서드를 재정의하여 고유한 수신기를 정의할 수 있습니다. 개발자 정의 수신기를 만드는 방법에 대한 자세한 내용은 .NET Framework 참조를 참조 TraceListener 하세요.
참고하십시오
.NET