Exportar (0) Imprimir
Expandir todo

XmlWriterTraceListener (Clase)

Actualización: noviembre 2007

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)

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true)]
public class XmlWriterTraceListener : TextWriterTraceListener
/** @attribute HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true) */
public class XmlWriterTraceListener extends TextWriterTraceListener
public class XmlWriterTraceListener extends TextWriterTraceListener

2ww0whx9.alert_note(es-es,VS.90).gifNota:

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

2ww0whx9.alert_note(es-es,VS.90).gifNota:

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

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.

2ww0whx9.alert_note(es-es,VS.90).gifNota:

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

2ww0whx9.alert_note(es-es,VS.90).gifNota:

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();
    }
}


Todos los miembros static (Shared en Visual Basic) públicos 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 Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft