Vorgehensweise: Erstellen und Initialisieren von AblaufverfolgungslistenernHow to: Create and Initialize Trace Listeners

Die Klassen System.Diagnostics.Debug und System.Diagnostics.Trace senden Nachrichten an Objekte, die Listener genannt werden, welche diese Meldungen empfangen und verarbeiten.The System.Diagnostics.Debug and System.Diagnostics.Trace classes send messages to objects called listeners that receive and process these messages. Ein solcher Listener, der System.Diagnostics.DefaultTraceListener, wird bei Aktivierung der Ablaufverfolgung oder des Debuggens automatisch erstellt und initialisiert.One such listener, the System.Diagnostics.DefaultTraceListener, is automatically created and initialized when tracing or debugging is enabled. Wenn die Trace- oder Debug-Ausgabe an zusätzliche Quellen geleitet werden soll, müssen Sie zusätzliche Ablaufverfolgungslistener erstellen und initialisieren.If you want Trace or Debug output to be directed to any additional sources, you must create and initialize additional trace listeners.

Erstellen Sie Listener, die auf die Anforderungen Ihrer Anwendung abgestimmt sind.The listeners you create should reflect your application's needs. Wenn Sie ein Textprotokoll der gesamten Ablaufverfolgungsausgabe brauchen, erstellen Sie einen TextWriterTraceListener-Listener, der die gesamte Ausgabe in eine neue Textdatei schreibt, sobald er aktiviert wird.For example, if you want a text record of all trace output, create a TextWriterTraceListener listener, which writes all output to a new text file when it is enabled. Wenn Sie die Ausgabe nur während der Anwendungsausführung anzeigen möchten, erstellen Sie einen ConsoleTraceListener-Listener, der die gesamte Ausgabe an ein Konsolenfenster leitet.On the other hand, if you want to view output only during application execution, create a ConsoleTraceListener listener, which directs all output to a console window. Der EventLogTraceListener kann die Ablaufverfolgungsausgabe an ein Ereignisprotokoll leiten.The EventLogTraceListener can direct trace output to an event log. Weitere Informationen finden Sie unter Ablaufverfolgungslistener.For more information, see Trace Listeners.

Sie können Ablaufverfolgungslistener in einer Anwendungskonfigurationsdatei oder im Code erstellen.You can create trace listeners in an application configuration file or in your code. Wir empfehlen die Verwendung von Anwendungskonfigurationsdateien, da Sie mit diesen Dateien Ablaufverfolgungslistener hinzufügen, ändern oder entfernen können, ohne den Code ändern zu müssen.We recommend the use of application configuration files, because they let you add, modify, or remove trace listeners without having to change your code.

So erstellen und verwenden Sie einen Ablaufverfolgungslistener mithilfe einer KonfigurationsdateiTo create and use a trace listener by using a configuration file

  1. Deklarieren Sie den Ablaufverfolgungslistener in der Anwendungskonfigurationsdatei.Declare your trace listener in your application configuration file. Wenn der Listener, den Sie erstellen, andere Objekte benötigt, deklarieren Sie diese ebenfalls.If the listener you are creating requires any other objects, declare them as well. Das folgende Beispiel zeigt, wie ein Listener mit der Bezeichnung myListener erstellt wird, der in die Textdatei TextWriterOutput.log schreibt.The following example shows how to create a listener called myListener that writes to the text file TextWriterOutput.log.

    <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. Verwenden Sie die Trace-Klasse im Code, um eine Meldung in die Ablaufverfolgungslistener zu schreiben.Use the Trace class in your code to write a message to the trace listeners.

    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();
    

So erstellen und verwenden Sie einen Ablaufverfolgungslistener im CodeTo create and use a trace listener in code

  • Fügen Sie den Ablaufverfolgungslistener der Listeners-Auflistung hinzu, und senden Sie die Ablaufverfolgungsinformationen an die Listener.Add the trace listener to the Listeners collection and send trace information to the 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();
    

    - oder –- or -

  • Wenn Sie nicht möchten, dass der Listener die Ablaufverfolgungsausgabe empfängt, fügen Sie diesen nicht zur Listeners-Auflistung hinzu.If you do not want your listener to receive trace output, do not add it to the Listeners collection. Sie können die Ausgabe über einen Listener unabhängig von der Listeners-Auflistung durch Aufrufen der eigenen Ausgabemethoden des Listeners ausgeben.You can emit output through a listener independent of the Listeners collection by calling the listener's own output methods. Im folgenden Beispiel wird gezeigt, wie eine Zeile in einen Listener geschrieben wird, der nicht in der Listeners-Auflistung vorhanden ist.The following example shows how to write a line to a listener that is not in the Listeners collection.

    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();
    

Siehe auchSee also