XmlWriterTraceListener Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Directs tracing or debugging output as XML-encoded data to a TextWriter or to a Stream, such as a FileStream.
public ref class XmlWriterTraceListener : System::Diagnostics::TextWriterTraceListener
public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener
type XmlWriterTraceListener = class
inherit TextWriterTraceListener
Public Class XmlWriterTraceListener
Inherits TextWriterTraceListener
- Vererbung
Beispiele
Das folgende Codebeispiel zeigt die Verwendung der XmlWriterTraceListener Klasse zum Schreiben von Escape- und Nicht-Escape-Daten in Dateiprotokolle.
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
class testClass
{
static void Main()
{
File.Delete("NotEscaped.xml");
TraceSource ts = new TraceSource("TestSource");
ts.Listeners.Add(new XmlWriterTraceListener("NotEscaped.xml"));
ts.Switch.Level = SourceLevels.All;
string testString = "<Test><InnerElement Val=\"1\" /><InnerElement Val=\"Data\"/><AnotherElement>11</AnotherElement></Test>";
XmlTextReader myXml = new XmlTextReader(new StringReader(testString));
XPathDocument xDoc = new XPathDocument(myXml);
XPathNavigator myNav = xDoc.CreateNavigator();
ts.TraceData(TraceEventType.Error, 38, myNav);
ts.Flush();
ts.Close();
File.Delete("Escaped.xml");
TraceSource ts2 = new TraceSource("TestSource2");
ts2.Listeners.Add(new XmlWriterTraceListener("Escaped.xml"));
ts2.Switch.Level = SourceLevels.All;
ts2.TraceData(TraceEventType.Error, 38, testString);
ts2.Flush();
ts2.Close();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Diagnostics
Class testClass
Shared Sub Main()
File.Delete("NotEscaped.xml")
Dim ts As New TraceSource("TestSource")
ts.Listeners.Add(New XmlWriterTraceListener("NotEscaped.xml"))
ts.Switch.Level = SourceLevels.All
Dim testString As String = "<Test><InnerElement Val=""1"" /><InnerElement Val=""Data""/><AnotherElement>11</AnotherElement></Test>"
Dim myXml As New XmlTextReader(New StringReader(testString))
Dim xDoc As New XPathDocument(myXml)
Dim myNav As XPathNavigator = xDoc.CreateNavigator()
ts.TraceData(TraceEventType.Error, 38, myNav)
ts.Flush()
ts.Close()
File.Delete("Escaped.xml")
Dim ts2 As New TraceSource("TestSource2")
ts2.Listeners.Add(New XmlWriterTraceListener("Escaped.xml"))
ts2.Switch.Level = SourceLevels.All
ts2.TraceData(TraceEventType.Error, 38, testString)
ts2.Flush()
ts2.Close()
End Sub
End Class
Hinweise
Hinweis
Sie müssen über eine nicht verwaltete Codeberechtigung verfügen, um eine Instanz der XmlWriterTraceListener Klasse zu erstellen.
Die XmlWriterTraceListener Klasse konvertiert Ablaufverfolgungs- und Debugginginformationen in einen XML-codierten Textstream. Die Beschreibung der XML-Ausgabe wird in den folgenden Tabellen angezeigt. Sie können das Dienstablaufverfolgungs-Viewer-Tool (SvcTraceViewer.exe) verwenden, um die XML-Ausgabe anzuzeigen.
Sie können einen XmlWriterTraceListener Code erstellen. Alternativ können Sie für .NET Framework-Apps eine XmlWriterTraceListener über die Anwendungskonfigurationsdatei aktivieren oder deaktivieren und dann die in Ihrer Anwendung konfigurierte XmlWriterTraceListener Verwenden. Bearbeiten Sie zum Konfigurieren einer XmlWriterTraceListenerKonfigurationsdatei, die dem Namen Ihrer Anwendung entspricht. In dieser Datei können Sie einen Listener hinzufügen oder entfernen, die Eigenschaften für einen Listener festlegen oder Listener entfernen. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert werden.
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="xmlListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="xmlOutput.xml"
traceOutputOptions="ProcessId, DateTime" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Die XmlWriterTraceListener Klasse erbt die Filter Eigenschaft von der Basisklasse TraceListener. Die Filter Eigenschaft ermöglicht eine zusätzliche Ebene der Ablaufverfolgungsausgabefilterung am Listener. Wenn ein Filter vorhanden ist, rufen die Methoden des Ablaufverfolgungslisteners die TraceShouldTrace Methode des Filters auf, um zu bestimmen, ob die Ablaufverfolgung ausgegeben werden soll.
Hinweis
Wenn versucht wird, in eine Datei zu schreiben, die verwendet wird oder nicht verfügbar ist, wird der Dateiname automatisch einer GUID vorangestellt.
Hinweis
Listener-Methoden sollen von Methoden der DebugKlassen aufgerufen TraceTraceSource werden. Die Listenermethoden sollen nicht direkt aus Dem Anwendungscode aufgerufen werden. Der XmlWriterTraceListener Listener ist in erster Linie für die Verwendung durch die TraceSource Klasse vorgesehen. Die Write Methoden WriteLine können von den Trace Klassen aufgerufen Debug werden, und Standardwerte werden für die XML-Elemente bereitgestellt, für die DebugTrace keine Werte bereitgestellt werden.
In der folgenden Tabelle werden die Elemente und Attribute der XML-Ausgabe beschrieben.
| Element | Attribute | Output | Hinweise |
|---|---|---|---|
CallStack |
Nichts | Hängt vom Vorhandensein des Callstack Flags in der TraceOutputOptions Eigenschaft ab. | Sonderzeichen wie > oder < werden durch Escapesequenzen ersetzt. Sehen Sie sich die nachstehende Übersetzungstabelle für Escapezeichen an. |
Computer |
Nichts | Immer vorhanden. | Der Wert der MachineName Eigenschaft. |
Correlation |
ActivityID |
Immer vorhanden | Wenn nicht angegeben, ist die Standardeinstellung eine leere GUID. |
RelatedActivityID |
Hängt vom Vorhandensein des relatedActivityId Parameters im Trace-Methodenaufruf ab. |
Der relatedActivityId Parameter der TraceTransfer Methode. |
|
DataItem |
Nichts |
data Hängt vom Parameter der TraceData Methode ab. |
Dieses Element kann ein Array von Elementen oder ein Element enthalten, sodass die Werte als Satz von DataItem Knoten unter dem TraceData Element geschrieben werden.Die Datenausgabe verwendet die ToString Methode der übergebenen Datenobjekte. |
EventID |
Nichts | Immer vorhanden. | Parametereingabe (id). |
Execution |
ProcessName |
Immer vorhanden. | Von der TraceEventCache. |
ProcessID |
Immer vorhanden. | Von der TraceEventCache. | |
ThreadID |
Immer vorhanden. | Von der TraceEventCache. | |
Level |
Nichts | Immer vorhanden. | Parametereingabe (der numerische Wert von eventType). Parameterwerte größer als 255 werden als 255 ausgegeben. |
LogicalOperationStack |
Nichts | Hängt vom Vorhandensein des LogicalOperationStack Flags in der TraceOutputOptions Eigenschaft ab. | Es kann mehrere logische Vorgänge geben, sodass die Werte als LogicalOperation Knoten unter dem LogicalOperationStack Element geschrieben werden. |
Message |
Nichts | Hängt vom Vorhandensein einer Nachricht im Trace-Methodenaufruf ab. | Dieses Element ist eine formatierte Nachricht, wenn Formatierungsargumente bereitgestellt werden. |
Source |
Name |
Immer vorhanden. | Parametereingabe. |
SubType |
Name |
Immer vorhanden. | Parametereingabe. |
TimeCreated |
SystemTime |
Immer vorhanden. | Wenn sie nicht vorhanden ist TraceEventCache, ist die Standardeinstellung die aktuelle Uhrzeit. |
TimeStamp |
Nichts | Hängt vom Vorhandensein des Timestamp Flags in der TraceOutputOptions Eigenschaft ab. | Von der TraceEventCache. |
Type |
Nichts | Immer vorhanden. | Immer der Wert 3. |
In der folgenden Tabelle sind die Zeichen dargestellt, die in der XML-Ausgabe escapen. Escaping erfolgt in allen Elementen und Attributen mit Ausnahme des DataItem Elements, das nicht escaped ist, wenn das Objekt, das an den data Parameter der TraceData Methode übergeben wird, ein XPathNavigator Objekt ist. Wenn ein XPathNavigator Objekt für das Datenobjekt verwendet wird, wird die MoveToRoot Methode aufgerufen, und der gesamte Stammknoten wird als nicht gescapete Daten nachverfolgt.
| Escapezeichen | Wert |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| |' | |
| 0xD | |
| 0xA |
Konstruktoren
| Name | Beschreibung |
|---|---|
| XmlWriterTraceListener(Stream, String) |
Initialisiert eine neue Instanz der XmlWriterTraceListener Klasse mit dem angegebenen Namen, wobei der angegebene Datenstrom als Empfänger der Debug- und Ablaufverfolgungsausgabe verwendet wird. |
| XmlWriterTraceListener(Stream) |
Initialisiert eine neue Instanz der XmlWriterTraceListener Klasse, wobei der angegebene Datenstrom als Empfänger der Debug- und Ablaufverfolgungsausgabe verwendet wird. |
| XmlWriterTraceListener(String, String) |
Initialisiert eine neue Instanz der XmlWriterTraceListener Klasse mit dem angegebenen Namen, wobei die angegebene Datei als Empfänger der Debug- und Ablaufverfolgungsausgabe verwendet wird. |
| XmlWriterTraceListener(String) |
Initialisiert eine neue Instanz der XmlWriterTraceListener Klasse, wobei die angegebene Datei als Empfänger der Debug- und Ablaufverfolgungsausgabe verwendet wird. |
| XmlWriterTraceListener(TextWriter, String) |
Initialisiert eine neue Instanz der XmlWriterTraceListener Klasse mit dem angegebenen Namen, wobei der angegebene Writer als Empfänger der Debug- und Ablaufverfolgungsausgabe verwendet wird. |
| XmlWriterTraceListener(TextWriter) |
Initialisiert eine neue Instanz der XmlWriterTraceListener Klasse mithilfe des angegebenen Writers als Empfänger der Debug- und Ablaufverfolgungsausgabe. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Attributes |
Ruft die benutzerdefinierten Listenerattribute der Ablaufverfolgung ab, die in der Anwendungskonfigurationsdatei definiert sind. (Geerbt von TraceListener) |
| Filter |
Dient zum Abrufen oder Festlegen des Ablaufverfolgungsfilters für den Ablaufverfolgungslistener. (Geerbt von TraceListener) |
| IndentLevel |
Dient zum Abrufen oder Festlegen der Einzugsebene. (Geerbt von TraceListener) |
| IndentSize |
Dient zum Abrufen oder Festlegen der Anzahl von Leerzeichen in einem Einzug. (Geerbt von TraceListener) |
| IsThreadSafe |
Ruft einen Wert ab, der angibt, ob der Ablaufverfolgungslistener threadsicher ist. (Geerbt von TraceListener) |
| Name |
Dient zum Abrufen oder Festlegen eines Namens für dieses TraceListener. (Geerbt von TraceListener) |
| NeedIndent |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Ausgabe eingezogen werden soll. (Geerbt von TraceListener) |
| TraceOutputOptions |
Ruft die Ausgabeoptionen für die Ablaufverfolgung ab oder legt sie fest. (Geerbt von TraceListener) |
| Writer |
Ruft den Text writer ab, der die Ablaufverfolgungs- oder Debuggingausgabe empfängt, oder legt diesen fest. (Geerbt von TextWriterTraceListener) |
Methoden
| Name | Beschreibung |
|---|---|
| Close() |
Schließt den Writer Listener, sodass er keine Ablaufverfolgungs- oder Debugausgabe mehr empfängt. |
| CreateObjRef(Type) |
Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird. (Geerbt von MarshalByRefObject) |
| Dispose() |
Veröffentlicht alle ressourcen, die von der TraceListener. (Geerbt von TraceListener) |
| Dispose(Boolean) |
Entfernt dieses TextWriterTraceListener Objekt. (Geerbt von TextWriterTraceListener) |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| Fail(String, String) |
Schreibt Ablaufverfolgungsinformationen, einschließlich einer Fehlermeldung und einer detaillierten Fehlermeldung in die Datei oder den Datenstrom. |
| Fail(String) |
Gibt eine Fehlermeldung an den Listener aus, den Sie beim Implementieren der TraceListener Klasse erstellen. (Geerbt von TraceListener) |
| Flush() |
Löscht den Ausgabepuffer für die Writer. (Geerbt von TextWriterTraceListener) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetLifetimeService() |
Veraltet.
Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert. (Geerbt von MarshalByRefObject) |
| GetSupportedAttributes() |
Ruft die benutzerdefinierten Attribute ab, die vom Ablaufverfolgungslistener unterstützt werden. (Geerbt von TraceListener) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| InitializeLifetimeService() |
Veraltet.
Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern. (Geerbt von MarshalByRefObject) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| MemberwiseClone(Boolean) |
Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts. (Geerbt von MarshalByRefObject) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Schreibt Ablaufverfolgungsinformationen, ein Datenobjekt und Ereignisinformationen in die Datei oder den Datenstrom. |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Schreibt Ablaufverfolgungsinformationen, Datenobjekte und Ereignisinformationen in die Datei oder den Datenstrom. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Schreibt Ablaufverfolgungsinformationen, eine formatierte Nachricht und Ereignisinformationen in die Datei oder den Datenstrom. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Schreibt Ablaufverfolgungsinformationen, eine Nachricht und Ereignisinformationen in die Datei oder den Datenstrom. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Schreibt Ablaufverfolgungs- und Ereignisinformationen in die spezifische Ausgabe des Listeners. (Geerbt von TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Schreibt Ablaufverfolgungsinformationen, einschließlich der Identität einer verwandten Aktivität, einer Nachricht und Ereignisinformationen in die Datei oder den Datenstrom. |
| Write(Object, String) |
Schreibt einen Kategorienamen und den Wert der Methode des Objekts ToString() in den Listener, den Sie beim Implementieren der TraceListener Klasse erstellen. (Geerbt von TraceListener) |
| Write(Object) |
Schreibt den Wert der Methode des Objekts ToString() in den Listener, den Sie beim Implementieren der TraceListener Klasse erstellen. (Geerbt von TraceListener) |
| Write(String, String) |
Schreibt einen Kategorienamen und eine Nachricht in den Listener, den Sie beim Implementieren der TraceListener Klasse erstellen. (Geerbt von TraceListener) |
| Write(String) |
Schreibt eine Kurznachricht ohne zusätzliche Kontextinformationen in die Datei oder den Datenstrom. |
| WriteIndent() |
Schreibt den Einzug in den Listener, den Sie beim Implementieren dieser Klasse erstellen, und setzt die NeedIndent Eigenschaft auf |
| WriteLine(Object, String) |
Schreibt einen Kategorienamen und den Wert der Methode des Objekts ToString() in den Listener, den Sie beim Implementieren der TraceListener Klasse erstellen, gefolgt von einem Zeilenterminator. (Geerbt von TraceListener) |
| WriteLine(Object) |
Schreibt den Wert der Methode des Objekts ToString() in den Listener, den Sie beim Implementieren der TraceListener Klasse erstellen, gefolgt von einem Zeilenterminator. (Geerbt von TraceListener) |
| WriteLine(String, String) |
Schreibt einen Kategorienamen und eine Nachricht in den Listener, den Sie beim Implementieren der TraceListener Klasse erstellen, gefolgt von einem Zeilenterminator. (Geerbt von TraceListener) |
| WriteLine(String) |
Schreibt eine Kurznachricht ohne zusätzliche Kontextinformationen, gefolgt vom aktuellen Zeilenterminator in die Datei oder den Datenstrom. |