Gewusst wie: Erstellen und Initialisieren von Ablaufverfolgungslistenern
Die Klassen System.Diagnostics.Debug und System.Diagnostics.Trace senden Meldungen an als Listener bezeichnete Objekte, die diese Meldungen empfangen und verarbeiten. Ein solcher Listener, System.Diagnostics.DefaultTraceListener, wird automatisch erstellt und initialisiert, wenn die Ablaufverfolgung oder das Debugging aktiviert ist. Wenn die Ausgabe von Trace oder Debug an zusätzliche Quellen geleitet werden soll, müssen Sie zusätzliche Ablaufverfolgungslistener erstellen und initialisieren.
Die Listener, die Sie erstellen, sollten den Anforderungen der Anwendung entsprechen. Wenn Sie beispielsweise einen Textdatensatz aller Ablaufverfolgungsausgaben erstellen möchten, erstellen Sie einen TextWriterTraceListener-Listener, der die gesamte Ausgabe in eine neue Textdatei schreibt, sobald er aktiviert wird. Wenn Sie allerdings die Ausgabe nur während der Anwendungsausführung anzeigen möchten, erstellen Sie einen ConsoleTraceListener-Listener, der die gesamte Ausgabe an ein Konsolenfenster weiterleitet. EventLogTraceListener kann die Ablaufverfolgung in ein Ereignisprotokoll weiterleiten. Weitere Informationen finden Sie unter Ablaufverfolgungslistener.
Sie können Ablaufverfolgungslistener in einer Anwendungskonfigurationsdatei oder im Code erstellen. Wir empfehlen die Verwendung von Anwendungskonfigurationsdateien, da Sie in diesen Dateien Ablaufverfolgungslistener hinzufügen, ändern oder entfernen können, ohne den Code zu ändern.
So erstellen und verwenden Sie einen Ablaufverfolgungslistener mithilfe einer Konfigurationsdatei
Deklarieren Sie den Ablaufverfolgungslistener in der Anwendungskonfigurationsdatei. Deklarieren Sie gegebenenfalls weitere Objekte, die für den Listener erforderlich sind. Das folgende Beispiel zeigt, wie Sie einen Listener mit der Bezeichnung myListener erstellen, der in die Textdatei TextWriterOutput.log schreibt.
<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>
Verwenden Sie im Code die Trace-Klasse, um eine Meldung in die Ablaufverfolgungslistener zu schreiben.
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 Code
Fügen Sie den Ablaufverfolgungslistener der Listeners-Auflistung hinzu, und senden Sie Ablaufverfolgungsinformationen an die Listener.
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 -
Wenn der Listener keine Ablaufverfolgungsausgabe empfangen soll, fügen Sie ihn nicht der 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.
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 auch
Aufgaben
Gewusst wie: Verfolgen von Code in einer Anwendung
Gewusst wie: Hinzufügen von Ablaufverfolgungsanweisungen zu Anwendungscode