XmlWriterTraceListener Clase

Definición

Dirige los resultados de traza o de depuración como datos en código XML a un TextWriter o a una Stream, como una 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
Herencia

Ejemplos

En el ejemplo de código siguiente se muestra el uso de la clase XmlWriterTraceListener para escribir datos con escape y sin escape en los registros de archivos.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

Comentarios

Nota

Debe tener permiso de código no administrado para crear una instancia de la clase XmlWriterTraceListener.You must have unmanaged code permission to create an instance of the XmlWriterTraceListener class.

La clase XmlWriterTraceListener convierte la información de traza y de depuración en una secuencia de texto codificada en XML.The XmlWriterTraceListener class converts tracing and debugging information into an XML-encoded text stream. En las tablas siguientes se muestra la descripción de la salida XML.The description of the XML output is shown in the tables that follow. Puede usar la herramienta Service Trace Viewer (SvcTraceViewer. exe) para mostrar la salida XML.You can use the Service Trace Viewer Tool (SvcTraceViewer.exe) to display the XML output.

Puede habilitar o deshabilitar un XmlWriterTraceListener a través del archivo de configuración de la aplicación y, a continuación, usar el XmlWriterTraceListener configurado en la aplicación.You can enable or disable an XmlWriterTraceListener through the application configuration file and then use the configured XmlWriterTraceListener in your application. Como alternativa, puede crear un XmlWriterTraceListener en el código.Alternately, you can create an XmlWriterTraceListener in your code.

Para configurar un XmlWriterTraceListener, edite el archivo de configuración que se corresponde con el nombre de la aplicación.To configure an XmlWriterTraceListener, edit the configuration file that corresponds to the name of your application. En este archivo, puede Agregar o quitar un agente de escucha, establecer las propiedades de un agente de escucha o quitar agentes de escucha.In this file, you can add or remove a listener, set the properties for a listener, or remove listeners. El archivo de configuración debe tener el formato del siguiente ejemplo.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>  

La clase XmlWriterTraceListener hereda la propiedad Filter de la clase base TraceListener.The XmlWriterTraceListener class inherits the Filter property from the base class TraceListener. La propiedad Filter permite un nivel adicional de filtrado de salida de seguimiento en el agente de escucha.The Filter property allows an additional level of trace output filtering at the listener. Si hay un filtro presente, los métodos Trace del agente de escucha de seguimiento llaman al método ShouldTrace del filtro para determinar si se debe emitir el seguimiento.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.

Nota

Si se realiza un intento de escribir en un archivo que está en uso o no disponible, el nombre de archivo se antepone automáticamente a un GUID.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.

Nota

Los métodos de agente de escucha están diseñados para ser llamados por métodos de las clases Debug, Tracey TraceSource.Listener methods are intended to be called by methods of the Debug, Trace, and TraceSource classes. Los métodos de escucha no están diseñados para llamarse directamente desde el código de la aplicación.The listener methods are not intended to be called directly from application code. El agente de escucha XmlWriterTraceListener está diseñado principalmente para su uso por la clase TraceSource.The XmlWriterTraceListener listener is primarily intended for use by the TraceSource class. Las clases Trace y Debug pueden llamar a los métodos Write y WriteLine, y se proporcionan valores predeterminados para los elementos XML que Trace y Debug no proporcionan valores para.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.

En la tabla siguiente se describen los elementos y atributos de la salida XML.The following table describes the elements and attributes of the XML output.

ElementoElement AtributosAttributes SalidaOutput NotasNotes
CallStack NingunoNone Depende de la presencia de la marca Callstack en la propiedad TraceOutputOptions.Depends on the presence of the Callstack flag in the TraceOutputOptions property. Los caracteres especiales como > o < se reemplazan por secuencias de escape.Special characters such as > or < are replaced with escape sequences. Vea la tabla de traducción de caracteres de escape que aparece a continuación.See the escaped character translation table that follows.
Computer NingunoNone Siempre está presente.Always present. Valor de propiedad MachineName .The value of the MachineName property.
Correlation ActivityID Siempre presenteAlways present Si no se especifica, el valor predeterminado es un GUID vacío.If not specified, the default is an empty GUID.
RelatedActivityID Depende de la presencia del parámetro relatedActivityId en la llamada al método de seguimiento.Depends on the presence of the relatedActivityId parameter in the Trace method call. El parámetro relatedActivityId del método TraceTransfer.The relatedActivityId parameter of the TraceTransfer method.
DataItem NingunoNone Depende del parámetro data del método TraceData.Depends on the data parameter of the TraceData method. Este elemento puede contener una matriz de elementos o un elemento, por lo que los valores se escriben como un conjunto de DataItem nodos bajo el elemento TraceData.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.

La salida de datos utiliza el método ToString de los objetos de datos pasados.The data output uses the ToString method of the passed-in data objects.
EventID NingunoNone Siempre está presente.Always present. Entrada de parámetro (id).Parameter input (id).
Execution ProcessName Siempre está presente.Always present. Desde el TraceEventCache.From the TraceEventCache.
ProcessID Siempre está presente.Always present. Desde el TraceEventCache.From the TraceEventCache. En los sistemas operativos Windows 98 y Windows me, si ProcessID es mayor que 2.147.483.647 es una representación positiva de un número negativo y debe convertirse para obtener el identificador de proceso correcto.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 Siempre está presente.Always present. Desde el TraceEventCache.From the TraceEventCache.
Level NingunoNone Siempre está presente.Always present. Entrada de parámetro (valor numérico de eventType).Parameter input (the numeric value of eventType). Los valores de parámetro mayores que 255 se muestran como 255.Parameter values greater than 255 are output as 255.
LogicalOperationStack NingunoNone Depende de la presencia de la marca LogicalOperationStack en la propiedad TraceOutputOptions.Depends on the presence of the LogicalOperationStack flag in the TraceOutputOptions property. Puede haber más de una operación lógica, por lo que los valores se escriben como LogicalOperation nodos bajo el elemento LogicalOperationStack.There can be more than one logical operation, so the values are written as LogicalOperation nodes under the LogicalOperationStack element.
Message NingunoNone Depende de la presencia de un mensaje en la llamada al método de seguimiento.Depends on the presence of a message in the Trace method call. Este elemento es un mensaje con formato si se proporcionan argumentos de formato.This element is a formatted message if formatting arguments are provided.
Source Name Siempre está presente.Always present. Entrada de parámetro.Parameter input.
SubType Name Siempre está presente.Always present. Entrada de parámetro.Parameter input.
TimeCreated SystemTime Siempre está presente.Always present. Si no está presente en el TraceEventCache, el valor predeterminado es la hora actual.If not present in the TraceEventCache, the default is the current time.
TimeStamp NingunoNone Depende de la presencia de la marca Timestamp en la propiedad TraceOutputOptions.Depends on the presence of the Timestamp flag in the TraceOutputOptions property. Desde el TraceEventCache.From the TraceEventCache.
Type NingunoNone Siempre está presente.Always present. Siempre es el valor 3.Always the value 3.

En la tabla siguiente se muestran los caracteres que se incluyen en la salida XML.The following table shows the characters that are escaped in the XML output. Los escapes se producen en todos los elementos y atributos con la excepción del elemento DataItem, que no se convierte en un carácter de escape si el objeto pasado al parámetro data del método TraceData es un objeto XPathNavigator.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. Si se utiliza un XPathNavigator para el objeto de datos, se llama al método MoveToRoot y se realiza un seguimiento del nodo raíz completo como datos sin escape.If an XPathNavigator is used for the data object, the MoveToRoot method is called and the entire root node is traced as unescaped data.

Carácter de escapeEscaped character ValorValue
& &
< <
> >
"" "
|'
0xD0xD &#xD;&#xD;
0xA0xA &#xA;&#xA;

Constructores

XmlWriterTraceListener(Stream)

Inicializa una nueva instancia de la clase XmlWriterTraceListener utilizando la secuencia especificada como destinatario de los resultados de traza y de depuración.Initializes a new instance of the XmlWriterTraceListener class, using the specified stream as the recipient of the debugging and tracing output.

XmlWriterTraceListener(Stream, String)

Inicializa una nueva instancia de la clase XmlWriterTraceListener con el nombre especificado, utilizando la secuencia especificada como destinatario de los resultados de traza y de depuración.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)

Inicializa una nueva instancia de la clase XmlWriterTraceListener utilizando el archivo especificado como destinatario de los resultados de traza y de depuración.Initializes a new instance of the XmlWriterTraceListener class, using the specified file as the recipient of the debugging and tracing output.

XmlWriterTraceListener(String, String)

Inicializa una nueva instancia de la clase XmlWriterTraceListener con el nombre especificado, utilizando el archivo especificado como destinatario de los resultados de traza y de depuración.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)

Inicializa una nueva instancia de la clase XmlWriterTraceListener utilizando el sistema de escritura especificado como destinatario de los resultados de traza y de depuración.Initializes a new instance of the XmlWriterTraceListener class using the specified writer as the recipient of the debugging and tracing output.

XmlWriterTraceListener(TextWriter, String)

Inicializa una nueva instancia de la clase XmlWriterTraceListener con el nombre especificado, utilizando el sistema de escritura especificado como destinatario de los resultados de traza y de depuración.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.

Propiedades

Attributes

Obtiene los atributos de agente de escucha de seguimiento personalizados que están definidos en el archivo de configuración de la aplicación.Gets the custom trace listener attributes defined in the application configuration file.

(Heredado de TraceListener)
Filter

Obtiene o establece el filtro de seguimiento para el agente de escucha de seguimiento.Gets or sets the trace filter for the trace listener.

(Heredado de TraceListener)
IndentLevel

Obtiene o establece el nivel de sangría.Gets or sets the indent level.

(Heredado de TraceListener)
IndentSize

Obtiene o establece el número de espacios de una sangría.Gets or sets the number of spaces in an indent.

(Heredado de TraceListener)
IsThreadSafe

Obtiene un valor que indica si el agente de escucha de seguimiento es seguro para la ejecución de subprocesos.Gets a value indicating whether the trace listener is thread safe.

(Heredado de TraceListener)
Name

Obtiene o establece un nombre para este objeto TraceListener.Gets or sets a name for this TraceListener.

(Heredado de TraceListener)
NeedIndent

Obtiene o establece un valor que indica si se va a aplicar sangría a los resultados.Gets or sets a value indicating whether to indent the output.

(Heredado de TraceListener)
TraceOutputOptions

Obtiene o establece las opciones de los resultados de seguimiento.Gets or sets the trace output options.

(Heredado de TraceListener)
Writer

Obtiene o establece el escritor de texto que recibe los resultados de la traza o la depuración.Gets or sets the text writer that receives the tracing or debugging output.

(Heredado de TextWriterTraceListener)

Métodos

Close()

Cierra Writer para este agente de escucha, de modo que ya no recibe ningún resultado de la traza o la depuración.Closes the Writer for this listener so that it no longer receives tracing or debugging output.

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos que usa TraceListener.Releases all resources used by the TraceListener.

(Heredado de TraceListener)
Dispose(Boolean)

Desecha este objeto TextWriterTraceListener.Disposes this TextWriterTraceListener object.

(Heredado de TextWriterTraceListener)
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
Fail(String)

Emite un mensaje de error para el agente de escucha que se crea al implementar la clase TraceListener.Emits an error message to the listener you create when you implement the TraceListener class.

(Heredado de TraceListener)
Fail(String, String)

Escribe la información de seguimiento que incluye un mensaje de error y un mensaje de error detallado en el archivo o el flujo.Writes trace information including an error message and a detailed error message to the file or stream.

Flush()

Vacía el búfer de resultados de la propiedad Writer.Flushes the output buffer for the Writer.

(Heredado de TextWriterTraceListener)
GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Heredado de MarshalByRefObject)
GetSupportedAttributes()

Obtiene los atributos personalizados admitidos por el agente de escucha de seguimiento.Gets the custom attributes supported by the trace listener.

(Heredado de TraceListener)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
InitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.Creates a shallow copy of the current MarshalByRefObject object.

(Heredado de MarshalByRefObject)
ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)
TraceData(TraceEventCache, String, TraceEventType, Int32, Object)

Escribe la información de seguimiento, los objetos de datos y la información de evento en el archivo o el flujo.Writes trace information, a data object, and event information to the file or stream.

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

Escribe la información de seguimiento, los objetos de datos y la información de evento en el archivo o el flujo.Writes trace information, data objects, and event information to the file or stream.

TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Escribe la información de seguimiento y de evento en los resultados específicos del agente de escucha.Writes trace and event information to the listener specific output.

(Heredado de TraceListener)
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String)

Escribe la información de seguimiento, los mensajes y la información de evento en el archivo o el flujo.Writes trace information, a message, and event information to the file or stream.

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

Escribe la información de seguimiento, los mensajes con formato y la información de evento en el archivo o el flujo.Writes trace information, a formatted message, and event information to the file or stream.

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

Escribe la información de seguimiento, incluida la identidad de una actividad relacionada, un mensaje e información de evento en el archivo o el flujo.Writes trace information including the identity of a related activity, a message, and event information to the file or stream.

Write(Object)

Escribe el valor del método ToString() del objeto en el agente de escucha que se crea al implementar la clase TraceListener.Writes the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(Heredado de TraceListener)
Write(Object, String)

Escribe un nombre de categoría y el valor del método ToString() del objeto en el agente de escucha que se crea al implementar la clase TraceListener.Writes a category name and the value of the object's ToString() method to the listener you create when you implement the TraceListener class.

(Heredado de TraceListener)
Write(String)

Escribe un mensaje textual sin información de contexto adicional en el archivo o el flujo.Writes a verbatim message without any additional context information to the file or stream.

Write(String, String)

Escribe un nombre de categoría y un mensaje en el agente de escucha que se crea al implementar la clase TraceListener.Writes a category name and a message to the listener you create when you implement the TraceListener class.

(Heredado de TraceListener)
WriteIndent()

Escribe la sangría en el agente de escucha que se crea al implementar esta clase y restablece la propiedad NeedIndent en false.Writes the indent to the listener you create when you implement this class, and resets the NeedIndent property to false.

(Heredado de TraceListener)
WriteLine(Object)

Escribe el valor del método ToString() del objeto en el agente de escucha que se crea al implementar la clase TraceListener, seguido de un terminador de línea.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.

(Heredado de TraceListener)
WriteLine(Object, String)

Escribe un nombre de categoría y el valor del método ToString() del objeto en el agente de escucha que se crea al implementar la clase TraceListener, seguidos de un terminador de línea.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.

(Heredado de TraceListener)
WriteLine(String)

Escribe un mensaje textual sin información de contexto adicional, seguido del actual terminador de línea, en el archivo o el flujo.Writes a verbatim message without any additional context information followed by the current line terminator to the file or stream.

WriteLine(String, String)

Escribe un nombre de categoría y un mensaje en el agente de escucha que se crea al implementar la clase TraceListener, seguidos de un terminador de línea.Writes a category name and a message to the listener you create when you implement the TraceListener class, followed by a line terminator.

(Heredado de TraceListener)

Seguridad

SecurityPermission
para la capacidad de llamar a código no administrado.for the ability to call unmanaged code. Enumeración asociada: UnmanagedCode.Associated enumeration: UnmanagedCode.

Se aplica a