Freigeben über


XmlWriterTraceListener Klasse

Definition

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 false.

(Geerbt von TraceListener)
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.

Gilt für: