Gewusst wie: Erstellen und Initialisieren von Ablaufverfolgungslistenern

Aktualisiert: November 2007

Die Klassen Debug und Trace senden Meldungen an als Listener bezeichnete Objekte, die diese Meldungen empfangen und verarbeiten. Ein solcher Listener, der DefaultTraceListener, wird bei der Aktivierung der Ablaufverfolgung oder des Debuggens automatisch erstellt und initialisiert. Weitere Informationen finden Sie unter Ablaufverfolgungslistener. Wenn die Ausgabe von Trace oder Debug an weitere Quellen geleitet werden soll, müssen Sie zusätzliche Ablaufverfolgungslistener erstellen und initialisieren.

Erstellen Sie Listener, die auf Ihre individuellen Anforderungen abgestimmt sind. Beispiel: Sie brauchen ein Textprotokoll der gesamten Ablaufverfolgungsausgabe. In diesem Fall erstellen Sie einen Listener, der die gesamte Ausgabe in eine neue Textdatei schreibt, sobald er aktiviert wird. Oft ist die Anzeige der Ausgabe jedoch nur während der Anwendungsausführung erwünscht. In diesem Fall erstellen Sie einen Listener, der die gesamte Ausgabe zu einem Konsolenfenster leitet. Der EventLogTraceListener leitet die Ablaufverfolgungsausgabe in ein Ereignisprotokoll, während sie der TextWriterTraceListener in einen Stream schreibt.

So erstellen und initialisieren Sie den Ablaufverfolgungslistener

  1. Deklarieren Sie den Ablaufverfolgungslistener. Deklarieren Sie gegebenenfalls weitere Objekte, die für den speziellen Listener erforderlich sind. Im folgenden Beispiel wird gezeigt, wie ein Listener erstellt wird, der in eine Textdatei schreibt:

    ' 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. Geben Sie die Ablaufverfolgungsausgabe aus.

    • Wenn der Listener die gesamte Ablaufverfolgungsausgabe empfangen soll, fügen Sie ihn zur Listeners-Auflistung hinzu.

      Im folgenden Beispiel wird gezeigt, wie der Listener zur Listeners-Auflistung hinzugefügt wird.

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

      - oder -

    • Wenn der Listener keine Ablaufverfolgungsausgabe empfangen soll, fügen Sie ihn nicht zur Listeners-Auflistung hinzu. Durch Aufrufen der eigenen Ausgabemethoden des Listeners kann Ausgabe durch den Listener auch unabhängig von der Listeners-Auflistung ausgegeben werden. Im folgenden Beispiel wird gezeigt, wie eine Zeile in einen Listener geschrieben wird, der sich nicht in der Listeners-Auflistung befindet:

      myListener.WriteLine( _
         "This output will not go to the Listeners collection")
      
      myListener.WriteLine( 
         "This output will not go to the Listeners collection");
      
  3. Wenn Ihr Listener kein Member der Listeners-Auflistung ist, müssen Sie zum Aufzeichnen der Ausgabe möglicherweise die Flush-Methode aufrufen.

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

Siehe auch

Aufgaben

Gewusst wie: Verfolgen von Code in einer Anwendung

Gewusst wie: Hinzufügen von Ablaufverfolgungsanweisungen zu Anwendungscode

Konzepte

Ablaufverfolgungslistener

Ablaufverfolgungsschalter

Weitere Ressourcen

Ablaufverfolgung und Instrumentieren von Anwendungen