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.

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 XmlWriterTraceListener clase para escribir datos de escape y no de escape en los registros de archivos.

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 XmlWriterTraceListener clase .

La XmlWriterTraceListener clase convierte la información de seguimiento y depuración en una secuencia de texto codificada en XML. La descripción de la salida XML se muestra en las tablas siguientes. Puede usar service Trace Viewer Tool (SvcTraceViewer.exe) para mostrar la salida XML.

Puede crear un en XmlWriterTraceListener el código. Como alternativa, para las aplicaciones de .NET Framework, puede habilitar o deshabilitar un XmlWriterTraceListener mediante el archivo de configuración de la aplicación y, a continuación, usar el configurado XmlWriterTraceListener en la aplicación. Para configurar , XmlWriterTraceListeneredite el archivo de configuración correspondiente al nombre de la aplicación. En este archivo, puede agregar o quitar un agente de escucha, establecer las propiedades de un agente de escucha o quitar agentes de escucha. El archivo de configuración debe tener formato similar al ejemplo siguiente.

<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 XmlWriterTraceListener clase hereda la Filter propiedad de la clase TraceListenerbase . La Filter propiedad permite un nivel adicional de filtrado de salida de seguimiento en el agente de escucha. Si hay un filtro presente, los Trace métodos del agente de escucha de seguimiento llaman al ShouldTrace método del filtro para determinar si se va a emitir el seguimiento.

Nota:

Si se intenta escribir en un archivo que está en uso o no disponible, el nombre de archivo se prefijo automáticamente mediante un GUID.

Nota:

Los métodos de escucha están diseñados para llamarse mediante métodos de las Debugclases , Tracey TraceSource . Los métodos de escucha no están diseñados para llamarse directamente desde el código de la aplicación. El XmlWriterTraceListener agente de escucha está pensado principalmente para su uso por parte de la TraceSource clase . Las Write clases y WriteLine pueden llamar a los Trace métodos y Debug , y los valores predeterminados se proporcionan para los elementos XML para los que Trace y Debug no proporcionan valores.

En la tabla siguiente se describen los elementos y atributos de la salida XML.

Elemento Atributos Resultados Notas
CallStack Ninguno Depende de la presencia de la Callstack marca en la TraceOutputOptions propiedad . Caracteres especiales como > o < se reemplazan por secuencias de escape. Vea la tabla de traducción de caracteres de escape que se muestra a continuación.
Computer Ninguno Siempre está presente. Valor de propiedad MachineName.
Correlation ActivityID Siempre presente Si no se especifica, el valor predeterminado es un GUID vacío.
RelatedActivityID Depende de la presencia del relatedActivityId parámetro en la llamada al método Trace. El parámetro relatedActivityId del método TraceTransfer.
DataItem Ninguno Depende del data parámetro del TraceData método . 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 TraceData elemento .

La salida de datos usa el ToString método de los objetos de datos pasados.
EventID Ninguno Siempre está presente. Entrada de parámetro (id).
Execution ProcessName Siempre está presente. De .TraceEventCache
ProcessID Siempre está presente. Desde .TraceEventCache
ThreadID Siempre está presente. Desde .TraceEventCache
Level Ninguno Siempre está presente. Entrada de parámetro (el valor numérico de eventType). Los valores de parámetro mayores que 255 son de salida como 255.
LogicalOperationStack Ninguno Depende de la presencia de la LogicalOperationStack marca en la TraceOutputOptions propiedad . Puede haber más de una operación lógica, por lo que los valores se escriben como LogicalOperation nodos en el LogicalOperationStack elemento .
Message Ninguno Depende de la presencia de un mensaje en la llamada al método Trace. Este elemento es un mensaje con formato si se proporcionan argumentos de formato.
Source Name Siempre está presente. Entrada de parámetros.
SubType Name Siempre está presente. Entrada de parámetros.
TimeCreated SystemTime Siempre está presente. Si no está presente en TraceEventCache, el valor predeterminado es la hora actual.
TimeStamp Ninguno Depende de la presencia de la Timestamp marca en la TraceOutputOptions propiedad . Desde .TraceEventCache
Type Ninguno Siempre está presente. Siempre el valor 3.

En la tabla siguiente se muestran los caracteres con escape en la salida XML. El escape se produce en todos los elementos y atributos con la excepción del DataItem elemento , que no se aplica escape si el objeto pasado al data parámetro del TraceData método es un XPathNavigator objeto . Si se usa para XPathNavigator el objeto de datos, se llama al MoveToRoot método y se realiza un seguimiento de todo el nodo raíz como datos sin escape.

Carácter de escape Valor
& &
< <
> >
" "
|'
0xD
0xA

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.

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.

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.

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.

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.

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.

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.

(Heredado de TraceListener)
Filter

Obtiene o establece el filtro de seguimiento para el agente de escucha de seguimiento.

(Heredado de TraceListener)
IndentLevel

Obtiene o establece el nivel de sangría.

(Heredado de TraceListener)
IndentSize

Obtiene o establece el número de espacios de una sangría.

(Heredado de TraceListener)
IsThreadSafe

Obtiene un valor que indica si el agente de escucha de seguimiento es seguro para la ejecución de subprocesos.

(Heredado de TraceListener)
Name

Obtiene o establece un nombre para este objeto TraceListener.

(Heredado de TraceListener)
NeedIndent

Obtiene o establece un valor que indica si se va a aplicar sangría a los resultados.

(Heredado de TraceListener)
TraceOutputOptions

Obtiene o establece las opciones de los resultados de seguimiento.

(Heredado de TraceListener)
Writer

Obtiene o establece el escritor de texto que recibe los resultados de la traza o la depuración.

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

CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos que usa TraceListener.

(Heredado de TraceListener)
Dispose(Boolean)

Desecha este objeto TextWriterTraceListener.

(Heredado de TextWriterTraceListener)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
Fail(String)

Emite un mensaje de error para el agente de escucha que se crea al implementar la clase TraceListener.

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

Flush()

Vacía el búfer de resultados de la propiedad Writer.

(Heredado de TextWriterTraceListener)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoletos.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetSupportedAttributes()

Obtiene los atributos personalizados admitidos por el agente de escucha de seguimiento.

(Heredado de TraceListener)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoletos.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
ToString()

Devuelve una cadena que representa el objeto actual.

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

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.

TraceEvent(TraceEventCache, String, TraceEventType, Int32)

Escribe la información de seguimiento y de evento en los resultados específicos del agente de escucha.

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

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.

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.

Write(Object)

Escribe el valor del método ToString() del objeto en el agente de escucha que se crea al implementar la clase TraceListener.

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

(Heredado de TraceListener)
Write(String)

Escribe un mensaje textual sin información de contexto adicional en el archivo o el flujo.

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.

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

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

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

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

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.

(Heredado de TraceListener)

Se aplica a