XmlWriterTraceListener Klasse

Definition

Leitet die Ablaufverfolgungs- oder Debugausgabe als XML-codierte Daten an einen TextWriter oder Stream, z. B. 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

Im folgenden Codebeispiel wird die Verwendung der XmlWriterTraceListener -Klasse gezeigt, um sowohl Escapedaten als auch Nicht-Escapedaten in Dateiprotokolle zu schreiben.

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 die Berechtigung für nicht verwalteten Code verfügen, um eine instance der XmlWriterTraceListener -Klasse zu erstellen.

Die XmlWriterTraceListener -Klasse konvertiert Ablaufverfolgungs- und Debuginformationen in einen XML-codierten Textstream. Die Beschreibung der XML-Ausgabe wird in den folgenden Tabellen angezeigt. Sie können das Service Trace Viewer-Tool (SvcTraceViewer.exe) verwenden, um die XML-Ausgabe anzuzeigen.

Sie können in Ihrem Code eine XmlWriterTraceListener erstellen. Alternativ können Sie für .NET Framework-Apps eine über die Anwendungskonfigurationsdatei XmlWriterTraceListener aktivieren oder deaktivieren und dann die in Ihrer Anwendung konfigurierte XmlWriterTraceListener verwenden. Um eine XmlWriterTraceListenerzu konfigurieren, bearbeiten Sie die Konfigurationsdatei, 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 sein.

<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 Filterung der Ablaufverfolgungsausgabe am Listener. Wenn ein Filter vorhanden ist, rufen die Trace Methoden des Ablaufverfolgungslisteners die ShouldTrace -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 dem Dateinamen automatisch eine GUID vorangestellt.

Hinweis

Listenermethoden sollen von Methoden der DebugKlassen , Traceund TraceSource aufgerufen werden. Die Listenermethoden sollen nicht direkt aus Anwendungscode aufgerufen werden. Der XmlWriterTraceListener Listener ist in erster Linie für die Verwendung durch die TraceSource -Klasse vorgesehen. Die Write Methoden und WriteLine können von den Trace Klassen und Debug aufgerufen werden, und Standardwerte werden für die XML-Elemente bereitgestellt, für die Trace keine Debug Werte bereitgestellt werden.

In der folgenden Tabelle werden die Elemente und Attribute der XML-Ausgabe beschrieben.

Element Attribute Ausgabe Hinweise
CallStack Keine Hängt vom Vorhandensein des Flags Callstack in der TraceOutputOptions -Eigenschaft ab. Sonderzeichen wie > oder < werden durch Escapesequenzen ersetzt. Weitere Informationen finden Sie in der folgenden Escapezeichenübersetzungstabelle.
Computer Keine 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 Keine Hängt vom Parameter der TraceData -Methode abdata. Dieses Element kann ein Array von Elementen oder ein Element enthalten, sodass die Werte als Gruppe von DataItem Knoten unter dem TraceData Element geschrieben werden.

Die Datenausgabe verwendet die ToString -Methode der übergebenen Datenobjekte.
EventID Keine Immer vorhanden. Parametereingabe (id).
Execution ProcessName Immer vorhanden. Aus .TraceEventCache
ProcessID Immer vorhanden. Aus .TraceEventCache
ThreadID Immer vorhanden. Aus .TraceEventCache
Level Keine Immer vorhanden. Parametereingabe (der numerische Wert von eventType). Parameterwerte größer als 255 werden als 255 ausgegeben.
LogicalOperationStack Keine Hängt vom Vorhandensein des Flags LogicalOperationStack 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 Keine Hängt vom Vorhandensein einer Nachricht im Aufruf der Trace-Methode ab. Dieses Element ist eine formatierte Meldung, wenn Formatierungsargumente bereitgestellt werden.
Source Name Immer vorhanden. Parametereingabe.
SubType Name Immer vorhanden. Parametereingabe.
TimeCreated SystemTime Immer vorhanden. Wenn nicht in TraceEventCachevorhanden ist, ist der Standardwert die aktuelle Uhrzeit.
TimeStamp Keine Hängt vom Vorhandensein des Flags Timestamp in der TraceOutputOptions -Eigenschaft ab. Aus .TraceEventCache
Type Keine Immer vorhanden. Immer der Wert 3.

In der folgenden Tabelle sind die Zeichen aufgeführt, die in der XML-Ausgabe mit Escapezeichen versehen werden. Escaping erfolgt in allen Elementen und Attributen mit Ausnahme des DataItem Elements, das nicht mit Escapezeichen versehen wird, wenn das an den data Parameter der TraceData Methode übergebene Objekt ein XPathNavigator Objekt ist. Wenn für das Datenobjekt ein XPathNavigator verwendet wird, wird die MoveToRoot -Methode aufgerufen, und der gesamte Stammknoten wird als Daten ohneScapes nachverfolgt.

Escapezeichen Wert
& &
< <
> >
" "
|'
0xD
0xA

Konstruktoren

XmlWriterTraceListener(Stream)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit dem angegebenen Stream als Empfänger der Debug- oder Ablaufverfolgungsausgabe.

XmlWriterTraceListener(Stream, String)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit dem angegebenen Namen und unter Verwendung des angegebenen Streams als Empfänger der Debug- oder Ablaufverfolgungsausgabe.

XmlWriterTraceListener(String)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit der angegebenen Datei als Empfänger der Debug- oder Ablaufverfolgungsausgabe.

XmlWriterTraceListener(String, String)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit dem angegebenen Namen und unter Verwendung der angegebenen Datei als Empfänger der Debug- oder Ablaufverfolgungsausgabe.

XmlWriterTraceListener(TextWriter)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit dem angegebenen Writer als Empfänger der Debug- oder Ablaufverfolgungsausgabe.

XmlWriterTraceListener(TextWriter, String)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit dem angegebenen Namen und unter Verwendung des angegebenen Writer als Empfänger der Debug- oder Ablaufverfolgungsausgabe.

Eigenschaften

Attributes

Ruft die benutzerdefinierten Attribute für Ablaufverfolgungslistener ab, die in der Anwendungskonfigurationsdatei definiert sind.

(Geerbt von TraceListener)
Filter

Ruft den Ablaufverfolgungsfilter für den Ablaufverfolgungslistener ab oder legt diesen fest.

(Geerbt von TraceListener)
IndentLevel

Ruft die Einzugsebene ab oder legt diese fest.

(Geerbt von TraceListener)
IndentSize

Ruft die Anzahl der Leerzeichen in einem Einzug ab oder legt diese fest.

(Geerbt von TraceListener)
IsThreadSafe

Ruft einen Wert ab, der angibt, ob der Ablaufverfolgungslistener threadsicher ist.

(Geerbt von TraceListener)
Name

Ruft einen Namen für diesen TraceListener ab oder legt diesen fest.

(Geerbt von TraceListener)
NeedIndent

Ruft einen Wert ab, der einen Einzug für die Ausgabe angibt, oder legt diesen fest.

(Geerbt von TraceListener)
TraceOutputOptions

Ruft die Optionen für die Ablaufverfolgungsausgabe ab oder legt diese fest.

(Geerbt von TraceListener)
Writer

Ruft den Textwriter ab, der die Ablaufverfolgungs- oder Debugausgabe empfängt.

(Geerbt von TextWriterTraceListener)

Methoden

Close()

Schließt den Writer für diesen Listener, sodass dieser keine Ablaufverfolgungs- oder Debugausgaben mehr empfängt.

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.

(Geerbt von MarshalByRefObject)
Dispose()

Gibt alle vom TraceListener verwendeten Ressourcen frei.

(Geerbt von TraceListener)
Dispose(Boolean)

Gibt dieses TextWriterTraceListener-Objekt frei.

(Geerbt von TextWriterTraceListener)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Fail(String)

Gibt eine Fehlermeldung an den Listener aus, den Sie beim Implementieren der TraceListener-Klasse erstellen.

(Geerbt von TraceListener)
Fail(String, String)

Schreibt Ablaufverfolgungsinformationen einschließlich einer Fehlermeldung und einer ausführlichen Fehlermeldung in die Datei oder den Stream.

Flush()

Leert den Ausgabepuffer von Writer.

(Geerbt von TextWriterTraceListener)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetSupportedAttributes()

Ruft die vom Ablaufverfolgungslistener unterstützten benutzerdefinierten Attribute ab.

(Geerbt von TraceListener)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des 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 Stream.

TraceData(TraceEventCache, String, TraceEventType, Int32, Object[])

Schreibt Ablaufverfolgungsinformationen, Datenobjekten und Ereignisinformationen in die Datei oder den Stream.

TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Schreibt Ablaufverfolgungs- und Ereignisinformationen in die spezifische Ausgabe des Listeners.

(Geerbt von TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Schreibt Ablaufverfolgungsinformationen, eine Meldung und Ereignisinformationen in die Datei oder den Stream.

TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[])

Schreibt Ablaufverfolgungsinformationen, eine formatierte Meldung und Ereignisinformationen in die Datei oder den Stream.

TraceTransfer(TraceEventCache, String, Int32, String, Guid)

Schreibt Ablaufverfolgungsinformationen einschließlich der Identität einer verwandten Aktivität, einer Meldung und Ereignisinformationen in die Datei oder den Stream.

Write(Object)

Schreibt den Wert der ToString()-Methode des Objekts in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.

(Geerbt von TraceListener)
Write(Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode eines Objekts in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.

(Geerbt von TraceListener)
Write(String)

Schreibt eine wörtliche Meldung ohne zusätzliche Kontextinformationen in die Datei oder den Stream.

Write(String, String)

Schreibt einen Kategorienamen und eine Meldung in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.

(Geerbt von TraceListener)
WriteIndent()

Schreibt den Einzug in den Listener, den sie bei der Implementierung dieser Klasse erstellen, und setzt die NeedIndent-Eigenschaft auf false zurück.

(Geerbt von TraceListener)
WriteLine(Object)

Schreibt den Wert der ToString()-Methode des Objekts gefolgt von einem Zeilenabschluss in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.

(Geerbt von TraceListener)
WriteLine(Object, String)

Schreibt einen Kategorienamen und den Wert der ToString()-Methode eines Objekts gefolgt von einem Zeilenabschluss in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.

(Geerbt von TraceListener)
WriteLine(String)

Schreibt eine wörtliche Meldung ohne zusätzliche Kontextinformationen, gefolgt vom aktuellen Zeilenabschlusszeichen in die Datei oder den Stream.

WriteLine(String, String)

Schreibt einen Kategorienamen und eine Meldung gefolgt von einem Zeilenabschluss in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.

(Geerbt von TraceListener)

Gilt für: