共用方式為


追蹤接聽項

使用 TraceDebugTraceSource 時,您必須具有收集和記錄所傳送訊息的機制。 追蹤訊息由「接聽項」負責接收。 接聽項的用途是收集、儲存和傳送追蹤訊息。 接聽項會將追蹤輸出導向至適當的目標,例如記錄檔、視窗或文字檔。

DebugTraceTraceSource 類別都可使用接聽程式,而每個接聽程式都可將其輸出傳送至各種接聽程式物件。 以下為常用的預先定義接聽程式:

  • TextWriterTraceListener 會將輸出重新導向至 TextWriter 類別的執行個體,或重新導向至任何 Stream 類別。 因為這些是 Stream 類別,所以還可寫入至主控台 (Console) 或檔案

  • EventLogTraceListener 會將輸出重新導向至事件記錄檔

  • DefaultTraceListener 會發出 WriteWriteLine 訊息至 OutputDebugStringDebugger.Log 方法。 在 Visual Studio 中,這會造成 [輸出] 視窗中出現偵錯訊息。 Fail 和失敗 Assert 訊息也會發送至 OutputDebugString Windows API 和 Debugger.Log 方法,並且也會導致顯示訊息方塊。 因為 DefaultTraceListener 會自動被納入所有的 Listeners 集合並且是唯一被自動納入的接聽項,所以這種行為是 DebugTrace 訊息的預設行為

  • ConsoleTraceListener 會將追蹤或偵錯輸出導向至標準輸出或標準錯誤資料流。 

  • DelimitedListTraceListener 會將追蹤或偵錯輸出導向至文字寫入器 (例如資料流寫入器) 或資料流 (例如檔案資料流)。追蹤輸出是採用以符號分隔的文字格式,其分隔符號是使用 Delimiter 屬性所指定的符號。     

  • XmlWriterTraceListener 會將追蹤或偵錯輸出當成 XML 編碼資料導向至 TextWriterStream,例如 FileStream

如果您要 DefaultTraceListener 以外的接聽項接收 DebugTraceTraceSource 輸出,則您必須將該接聽項加入至 Listeners 集合。 如需詳細資訊,請參閱 HOW TO:建立和初始設定追蹤接聽項HOW TO:使用 TraceSource 和含有追蹤接聽項的篩選條件Listeners 集合中的任何接聽項都會自追蹤輸出方法取得相同的訊息。 例如,假設您設定兩個接聽項:TextWriterTraceListenerEventLogTraceListener。 每個接聽項都會收到相同的訊息。 TextWriterTraceListener 會將其輸出傳送至資料流,而 EventLogTraceListener 則會將其輸出傳送至事件記錄檔。

下列範例顯示如何將輸出傳送至 Listeners 集合。

' 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");

偵錯和追蹤共用同一個 Listeners 集合,因此如果您在應用程式中,將接聽項物件新增至 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));

開發人員定義的接聽項

您可定義自己的接聽項,其方式是繼承自 TraceListener 基底類別並用自訂方法來覆寫其方法。 如需建立開發人員定義接聽程式的詳細資訊,請參閱《.NET Framework 參考》中的 TraceListener

請參閱

參考

TextWriterTraceListener

EventLogTraceListener

DefaultTraceListener

TraceListener

概念

檢測和追蹤的簡介

追蹤參數

其他資源

追蹤和稽核應用程式