XmlWriterTraceListener Klasse

Definition

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

Im folgenden Codebeispiel wird die Verwendung der XmlWriterTraceListener-Klasse zum Schreiben von Daten mit Escapezeichen und ohne Escapezeichen in Datei Protokollen veranschaulicht.The following code example shows the use of the XmlWriterTraceListener class to write both escaped and non-escaped data to file logs.

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 "nicht verwalteter Code" verfügen, um eine Instanz der XmlWriterTraceListener-Klasse zu erstellen.You must have unmanaged code permission to create an instance of the XmlWriterTraceListener class.

Die XmlWriterTraceListener-Klasse konvertiert Ablaufverfolgungs-und Debuginformationen in einen XML-codierten Textstream.The XmlWriterTraceListener class converts tracing and debugging information into an XML-encoded text stream. Die Beschreibung der XML-Ausgabe wird in den folgenden Tabellen angezeigt:The description of the XML output is shown in the tables that follow. Sie können das Service Trace Viewer-Tool (SvcTraceViewer. exe) verwenden, um die XML-Ausgabe anzuzeigen.You can use the Service Trace Viewer Tool (SvcTraceViewer.exe) to display the XML output.

Sie können eine XmlWriterTraceListener über die Anwendungs Konfigurationsdatei aktivieren oder deaktivieren und dann die konfigurierte XmlWriterTraceListener in der Anwendung verwenden.You can enable or disable an XmlWriterTraceListener through the application configuration file and then use the configured XmlWriterTraceListener in your application. Alternativ können Sie einen XmlWriterTraceListener im Code erstellen.Alternately, you can create an XmlWriterTraceListener in your code.

Um einen XmlWriterTraceListenerzu konfigurieren, bearbeiten Sie die Konfigurationsdatei, die dem Namen der Anwendung entspricht.To configure an XmlWriterTraceListener, edit the configuration file that corresponds to the name of your application. In dieser Datei können Sie einen Listener hinzufügen oder entfernen, die Eigenschaften für einen Listener festlegen oder Listener entfernen.In this file, you can add or remove a listener, set the properties for a listener, or remove listeners. Die Konfigurationsdatei sollte wie im folgenden Beispiel formatiert sein.The configuration file should be formatted like the following example.

<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.The XmlWriterTraceListener class inherits the Filter property from the base class TraceListener. Die Filter-Eigenschaft ermöglicht eine zusätzliche Ebene der Ablauf Verfolgungs Ausgabe Filterung auf dem Listener.The Filter property allows an additional level of trace output filtering at the listener. Wenn ein Filter vorhanden ist, wird die Trace-Methode des ablaufverfolgungslisters ShouldTrace aufgerufen, um zu bestimmen, ob die Ablauf Verfolgung ausgegeben werden soll.If there is a filter present, the Trace methods of the trace listener call the ShouldTrace method of the filter to determine whether to emit the trace.

Hinweis

Wenn versucht wird, in eine Datei zu schreiben, die verwendet wird oder nicht verfügbar ist, wird dem Dateinamen automatisch eine GUID vorangestellt.If an attempt is made to write to a file that is in use or unavailable, the file name is automatically prefixed by a GUID.

Hinweis

Listenermethoden sollen von Methoden der Klassen Debug, Traceund TraceSource aufgerufen werden.Listener methods are intended to be called by methods of the Debug, Trace, and TraceSource classes. Die Listenermethoden sollen nicht direkt aus dem Anwendungscode aufgerufen werden.The listener methods are not intended to be called directly from application code. Der XmlWriterTraceListener Listener ist hauptsächlich für die Verwendung durch die TraceSource-Klasse bestimmt.The XmlWriterTraceListener listener is primarily intended for use by the TraceSource class. Die Methoden Write und WriteLine können von den Klassen Trace und Debug aufgerufen werden, und für die XML-Elemente, die Trace und Debug keine Werte bereitstellen, werden Standardwerte bereitgestellt.The Write and WriteLine methods can be called by the Trace and Debug classes, and default values are provided for the XML elements that Trace and Debug do not supply values for.

In der folgenden Tabelle werden die Elemente und Attribute der XML-Ausgabe beschrieben.The following table describes the elements and attributes of the XML output.

ElementElement AttributeAttributes AusgabeOutput HinweiseNotes
CallStack KeineNone Hängt davon ab, ob das Callstack-Flag in der TraceOutputOptions-Eigenschaft vorhanden ist.Depends on the presence of the Callstack flag in the TraceOutputOptions property. Sonderzeichen, z. b. > oder <, werden durch Escapesequenzen ersetzt.Special characters such as > or < are replaced with escape sequences. Weitere Informationen finden Sie in der folgenden Tabelle mit Escapezeichen.See the escaped character translation table that follows.
Computer KeineNone Immer vorhanden.Always present. Der Wert der MachineName-Eigenschaft.The value of the MachineName property.
Correlation ActivityID Immer vorhandenAlways present Wenn nicht angegeben, ist der Standardwert eine leere Guid.If not specified, the default is an empty GUID.
RelatedActivityID Hängt davon ab, ob der relatedActivityId-Parameter im Ablauf Verfolgungsmethoden-aufrufen vorhanden ist.Depends on the presence of the relatedActivityId parameter in the Trace method call. Der relatedActivityId-Parameter der TraceTransfer-Methode.The relatedActivityId parameter of the TraceTransfer method.
DataItem KeineNone Hängt vom data-Parameter der TraceData-Methode ab.Depends on the data parameter of the TraceData method. Dieses Element kann ein Array von-Elementen oder ein-Element enthalten, sodass die Werte als Satz von DataItem Knoten unterhalb des TraceData-Elements geschrieben werden.This element can contain an array of elements or one element, so the values are written as a set of DataItem nodes under the TraceData element.

Die Datenausgabe verwendet die ToString-Methode der über gebenden Datenobjekte.The data output uses the ToString method of the passed-in data objects.
EventID KeineNone Immer vorhanden.Always present. Parameter Eingabe (id).Parameter input (id).
Execution ProcessName Immer vorhanden.Always present. Aus dem TraceEventCache.From the TraceEventCache.
ProcessID Immer vorhanden.Always present. Aus dem TraceEventCache.From the TraceEventCache. Unter den Betriebssystemen Windows 98 und Windows Me, wenn ProcessID größer als 2.147.483.647 ist, handelt es sich um eine positive Darstellung einer negativen Zahl, die konvertiert werden muss, um die richtige Prozess-ID zu erhalten.On Windows 98 and Windows Me operating systems, if ProcessID is greater than 2,147,483,647 it is a positive representation of a negative number and should be converted to obtain the correct process identifier.
ThreadID Immer vorhanden.Always present. Aus dem TraceEventCache.From the TraceEventCache.
Level KeineNone Immer vorhanden.Always present. Parameter Eingabe (der numerische Wert von eventType).Parameter input (the numeric value of eventType). Parameter Werte größer als 255 werden als 255 ausgegeben.Parameter values greater than 255 are output as 255.
LogicalOperationStack KeineNone Hängt davon ab, ob das LogicalOperationStack-Flag in der TraceOutputOptions-Eigenschaft vorhanden ist.Depends on the presence of the LogicalOperationStack flag in the TraceOutputOptions property. Es können mehrere logische Vorgänge vorhanden sein, sodass die Werte als LogicalOperation Knoten unterhalb des LogicalOperationStack-Elements geschrieben werden.There can be more than one logical operation, so the values are written as LogicalOperation nodes under the LogicalOperationStack element.
Message KeineNone Hängt davon ab, ob eine Nachricht im Ablauf Verfolgungsmethoden-Befehl vorhanden ist.Depends on the presence of a message in the Trace method call. Dieses Element ist eine formatierte Meldung, wenn Formatierungs Argumente bereitgestellt werden.This element is a formatted message if formatting arguments are provided.
Source Name Immer vorhanden.Always present. Parameter Eingabe.Parameter input.
SubType Name Immer vorhanden.Always present. Parameter Eingabe.Parameter input.
TimeCreated SystemTime Immer vorhanden.Always present. Wenn Sie nicht im TraceEventCachevorhanden ist, wird standardmäßig die aktuelle Uhrzeit angegeben.If not present in the TraceEventCache, the default is the current time.
TimeStamp KeineNone Hängt davon ab, ob das Timestamp-Flag in der TraceOutputOptions-Eigenschaft vorhanden ist.Depends on the presence of the Timestamp flag in the TraceOutputOptions property. Aus dem TraceEventCache.From the TraceEventCache.
Type KeineNone Immer vorhanden.Always present. Immer den Wert 3.Always the value 3.

Die folgende Tabelle zeigt die Zeichen, die in der XML-Ausgabe mit Escapezeichen versehen werden.The following table shows the characters that are escaped in the XML output. Escapezeichen treten in allen Elementen und Attributen mit Ausnahme des DataItem-Elements auf, das nicht mit Escapezeichen versehen wird, wenn das Objekt, das an den data-Parameter der TraceData-Methode übergeben wird, ein XPathNavigator Objekt ist.Escaping occurs in all the elements and attributes with the exception of the DataItem element, which is not escaped if the object passed to the data parameter of the TraceData method is an XPathNavigator object. Wenn eine XPathNavigator für das Datenobjekt verwendet wird, wird die MoveToRoot-Methode aufgerufen, und der gesamte Stamm Knoten wird als Daten ohne Escapezeichen verfolgt.If an XPathNavigator is used for the data object, the MoveToRoot method is called and the entire root node is traced as unescaped data.

EscapezeichenEscaped character WertValue
& &
< <
> >
"" "
|'
0xD0xD &#xD;&#xD;
0xA0xA &#XA;&#xA;

Konstruktoren

XmlWriterTraceListener(Stream)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit dem angegebenen Stream als Empfänger der Debug- oder Ablaufverfolgungsausgabe.Initializes a new instance of the XmlWriterTraceListener class, using the specified stream as the recipient of the debugging and tracing output.

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.Initializes a new instance of the XmlWriterTraceListener class with the specified name, using the specified stream as the recipient of the debugging and tracing output.

XmlWriterTraceListener(String)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit der angegebenen Datei als Empfänger der Debug- oder Ablaufverfolgungsausgabe.Initializes a new instance of the XmlWriterTraceListener class, using the specified file as the recipient of the debugging and tracing output.

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.Initializes a new instance of the XmlWriterTraceListener class with the specified name, using the specified file as the recipient of the debugging and tracing output.

XmlWriterTraceListener(TextWriter)

Initialisiert eine neue Instanz der XmlWriterTraceListener-Klasse mit dem angegebenen Writer als Empfänger der Debug- oder Ablaufverfolgungsausgabe.Initializes a new instance of the XmlWriterTraceListener class using the specified writer as the recipient of the debugging and tracing output.

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.Initializes a new instance of the XmlWriterTraceListener class with the specified name, using the specified writer as the recipient of the debugging and tracing output.

Eigenschaften

Attributes

Ruft die benutzerdefinierten Attribute für Ablaufverfolgungslistener ab, die in der Anwendungskonfigurationsdatei definiert sind.Gets the custom trace listener attributes defined in the application configuration file.

(Geerbt von TraceListener)
Filter

Ruft den Ablaufverfolgungsfilter für den Ablaufverfolgungslistener ab oder legt diesen fest.Gets or sets the trace filter for the trace listener.

(Geerbt von TraceListener)
IndentLevel

Ruft die Einzugsebene ab oder legt diese fest.Gets or sets the indent level.

(Geerbt von TraceListener)
IndentSize

Ruft die Anzahl der Leerzeichen in einem Einzug ab oder legt diese fest.Gets or sets the number of spaces in an indent.

(Geerbt von TraceListener)
IsThreadSafe

Ruft einen Wert ab, der angibt, ob der Ablaufverfolgungslistener threadsicher ist.Gets a value indicating whether the trace listener is thread safe.

(Geerbt von TraceListener)
Name

Ruft einen Namen für diesen TraceListener ab oder legt diesen fest.Gets or sets a name for this TraceListener.

(Geerbt von TraceListener)
NeedIndent

Ruft einen Wert ab, der einen Einzug für die Ausgabe angibt, oder legt diesen fest.Gets or sets a value indicating whether to indent the output.

(Geerbt von TraceListener)
TraceOutputOptions

Ruft die Optionen für die Ablaufverfolgungsausgabe ab oder legt diese fest.Gets or sets the trace output options.

(Geerbt von TraceListener)
Writer

Ruft den Textwriter ab, der die Ablaufverfolgungs- oder Debugausgabe empfängt.Gets or sets the text writer that receives the tracing or debugging output.

(Geerbt von TextWriterTraceListener)

Methoden

Close()

Schließt den Writer für diesen Listener, sodass dieser keine Ablaufverfolgungs- oder Debugausgaben mehr empfängt.Closes the Writer for this listener so that it no longer receives tracing or debugging output.

CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Geerbt von MarshalByRefObject)
Dispose()

Veröffentlicht alle durch den TraceListener verwendeten Ressourcen.Releases all resources used by the TraceListener.

(Geerbt von TraceListener)
Dispose(Boolean)

Gibt dieses TextWriterTraceListener-Objekt frei.Disposes this TextWriterTraceListener object.

(Geerbt von TextWriterTraceListener)
Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
Fail(String)

Gibt eine Fehlermeldung an den Listener aus, den Sie beim Implementieren der TraceListener-Klasse erstellen.Emits an error message to the listener you create when you implement the TraceListener class.

(Geerbt von TraceListener)
Fail(String, String)

Schreibt Ablaufverfolgungsinformationen einschließlich einer Fehlermeldung und einer ausführlichen Fehlermeldung in die Datei oder den Stream.Writes trace information including an error message and a detailed error message to the file or stream.

Flush()

Leert den Ausgabepuffer von Writer.Flushes the output buffer for the Writer.

(Geerbt von TextWriterTraceListener)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetLifetimeService()

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Geerbt von MarshalByRefObject)
GetSupportedAttributes()

Ruft die vom Ablaufverfolgungslistener unterstützten benutzerdefinierten Attribute ab.Gets the custom attributes supported by the trace listener.

(Geerbt von TraceListener)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
InitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.Obtains a lifetime service object to control the lifetime policy for this instance.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.Creates a shallow copy of the current MarshalByRefObject object.

(Geerbt von MarshalByRefObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Schreibt Ablaufverfolgungsinformationen, ein Datenobjekt und Ereignisinformationen in die Datei oder den Stream.Writes trace information, a data object, and event information to the file or stream.

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

Schreibt Ablaufverfolgungsinformationen, Datenobjekten und Ereignisinformationen in die Datei oder den Stream.Writes trace information, data objects, and event information to the file or stream.

TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Schreibt Ablaufverfolgungs- und Ereignisinformationen in die spezifische Ausgabe des Listeners.Writes trace and event information to the listener specific output.

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

Schreibt Ablaufverfolgungsinformationen, eine Meldung und Ereignisinformationen in die Datei oder den Stream.Writes trace information, a message, and event information to the file or stream.

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

Schreibt Ablaufverfolgungsinformationen, eine formatierte Meldung und Ereignisinformationen in die Datei oder den Stream.Writes trace information, a formatted message, and event information to the file or 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.Writes trace information including the identity of a related activity, a message, and event information to the file or stream.

Write(Object)

Schreibt den Wert der ToString()-Methode des Objekts in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.Writes the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(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.Writes a category name and the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(Geerbt von TraceListener)
Write(String)

Schreibt eine wörtliche Meldung ohne zusätzliche Kontextinformationen in die Datei oder den Stream.Writes a verbatim message without any additional context information to the file or stream.

Write(String, String)

Schreibt einen Kategorienamen und eine Meldung in den Listener, den Sie beim Implementieren der TraceListener-Klasse erstellen.Writes a category name and a message to the listener you create when you implement the TraceListener class.

(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.Writes the indent to the listener you create when you implement this class, and resets the NeedIndent property to false.

(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.Writes the value of the object's ToString() method to the listener you create when you implement the TraceListener class, followed by a line terminator.

(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.Writes a category name and the value of the object's ToString() method to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Geerbt von TraceListener)
WriteLine(String)

Schreibt eine wörtliche Meldung ohne zusätzliche Kontextinformationen, gefolgt vom aktuellen Zeilenabschlusszeichen in die Datei oder den Stream.Writes a verbatim message without any additional context information followed by the current line terminator to the file or 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.Writes a category name and a message to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Geerbt von TraceListener)

Sicherheit

SecurityPermission
, wenn nicht verwalteter Code aufgerufen werden soll.for the ability to call unmanaged code. Zugeordnete Enumeration: UnmanagedCodeAssociated enumeration: UnmanagedCode.

Gilt für: