共用方式為


HOW TO:建立和初始設定追蹤接聽項

System.Diagnostics.DebugSystem.Diagnostics.Trace 類別將訊息傳送至稱為接聽程式的物件,由接聽程式物件負責接收和處理這些訊息。 這類接聽程式 (例如 System.Diagnostics.DefaultTraceListener) 會在啟用追蹤或偵錯時自動建立和初始化。 如果您要將 TraceDebug 輸出導向任何其他來源,則必須建立和初始化其他的追蹤接聽程式。

您建立的接聽程式應反映出您應用程式的需求。 例如,如果您想要所有追蹤輸出的文字記錄,則建立 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();
    

請參閱

工作

HOW TO:追蹤應用程式中的程式碼

HOW TO:將追蹤陳述式加入至應用程式程式碼

概念

追蹤接聽項

追蹤參數

其他資源

追蹤和稽核應用程式