Exportar (0) Imprimir
Expandir todo
Este tema aún no ha recibido ninguna valoración - Valorar este tema

XmlWriterTraceListener (Clase)

Nota: esta clase es nueva en la versión 2.0 de .NET Framework.

Dirige los resultados de seguimiento o de depuración como datos en código XML a un TextWriter o a una Stream, como una FileStream.

Espacio de nombres: System.Diagnostics
Ensamblado: System (en system.dll)

public class XmlWriterTraceListener : TextWriterTraceListener
public class XmlWriterTraceListener extends TextWriterTraceListener
public class XmlWriterTraceListener extends TextWriterTraceListener
NotaNota

Es preciso tener permiso de código no administrado para crear una instancia de la clase XmlWriterTraceListener.

NotaNota

El atributo HostProtectionAttribute aplicado a esta clase tiene el siguiente valor para la propiedad Resources: Synchronization. HostProtectionAttribute no afecta a las aplicaciones de escritorio (que normalmente se inician al hacer doble clic en un icono, escribir un comando o introducir una dirección URL en un explorador). Para obtener más información, vea la clase HostProtectionAttribute o Programación de SQL Server y atributos de protección del host.

La clase XmlWriterTraceListener convierte la información de seguimiento y de depuración en una secuencia de texto en código XML. La descripción de los resultados XML se muestra en las siguientes tablas.

Se puede habilitar o deshabilitar un XmlWriterTraceListener a través del archivo de configuración de la aplicación y, a continuación, utilizar el XmlWriterTraceListener configurado en la aplicación. Asimismo, se puede crear un XmlWriterTraceListener en el código.

Para configurar un XmlWriterTraceListener, edite el archivo de configuración correspondiente al nombre de la aplicación. En este archivo, se 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 debería tener el formato que se muestra en el siguiente ejemplo.

<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. La propiedad Filter permite un nivel adicional de filtrado de los resultados de seguimiento en el agente de escucha. Si hay un filtro, los métodos Trace del agente de escucha de seguimiento llaman al método ShouldTrace del filtro para determinar si debe emitirse el seguimiento.

NotaNota

Si se intenta escribir en un archivo que está en uso o no está disponible, delante del nombre del archivo se agrega automáticamente un identificador único global (GUID).

NotaNota

Los métodos de agente de escucha son llamados por los métodos de las clases Debug, Tracey TraceSource. No se llama a estos métodos directamente desde el código de la aplicación. El agente de escucha XmlWriterTraceListener sirve principalmente para que lo utilice la clase TraceSource. Las clases Trace y Debug pueden llamar a los métodos Write y WriteLine, y se proporcionan valores predeterminados para los elementos XML para los que Trace y Debug no proporcionan valores.

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

Elemento

Atributos

Salida

Notas

CallStack

Ninguna

Depende de la presencia del indicador Callstack en la propiedad TraceOutputOptions.

Los caracteres especiales como > o < se reemplazan con secuencias de escape. Vea la tabla de conversión de los caracteres de escape que figura a continuación.

Computer

Ninguna

Siempre presente.

El valor de la propiedad MachineName.

Correlation

ActivityID

Siempre presente.

Si no se especifica, el valor predeterminado es un GUID vacío.

RelatedActivityID

Depende de la presencia del parámetro relatedActivityId en la llamada al método Trace.

El parámetro relatedActivityId del método TraceTransfer.

DataItem

Ninguna

Depende del parámetro data del método TraceData.

Este elemento puede contener una matriz de elementos o un elemento, por lo que los valores se escriben como un conjunto de nodos DataItem debajo del elemento TraceData.

La salida de datos utiliza el método ToString de los objetos de datos que se han pasado.

EventID

Ninguna

Siempre presente.

Entrada de parámetro (id).

Execution

ProcessName

Siempre presente.

De TraceEventCache.

ProcessID

Siempre presente.

De TraceEventCache. En los sistemas operativos Windows 98 y Windows Me, si el valor de 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.

ThreadID

Siempre presente.

De TraceEventCache.

Level

Ninguna

Siempre presente.

Entrada de parámetro (el valor numérico de eventType). Los valores de parámetro mayores que 255 salen como 255.

LogicalOperationStack

Ninguna

Depende de la presencia del indicador LogicalOperationStack en la propiedad TraceOutputOptions.

Puede haber más de una operación lógica, por lo que los valores se escriben como nodos LogicalOperation debajo del elemento LogicalOperationStack.

Message

Ninguna

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

Entrada de parámetro.

SubType

Name

Siempre presente.

Entrada de parámetro.

TimeCreated

SystemTime

Siempre presente.

Si no está presente en TraceEventCache, el valor predeterminado es la hora actual.

TimeStamp

Ninguna

Depende de la presencia del indicador Timestamp en la propiedad TraceOutputOptions.

De TraceEventCache.

Type

Ninguna

Siempre presente.

Siempre el valor 3.

En la tabla siguiente se muestran los caracteres a los que se aplican secuencias de escape en los resultados XML. La aplicación de secuencias de escape afecta a todos los elementos y atributos, a excepción del elemento DataItem, al que no se aplica la secuencia de escape si el objeto que se pasa al parámetro data del método TraceData es un objeto XPathNavigator. Si para el objeto de datos se utiliza XPathNavigator, se llama al método MoveToRoot y el seguimiento de todo el nodo raíz se realiza como si se tratara de datos de cadena sin escape.

Carácter de escape

Valor

&

&amp;

<

&lt;

>

&gt;

"

&quot;

\

&apos;

0xD

&#xD;

0xA

&#xA;

En el ejemplo de código siguiente se muestra el uso de la clase XmlWriterTraceListener para escribir datos de cadena con o sin escape en 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();
    }
}

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.