XmlWriterTraceListener Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 |
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) |