XmlWriterTraceListener Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Indirizza l'output di tracciatura o di debug come dati con codifica XML a una classe TextWriter o Stream, ad esempio una classe FileStream.
public ref class XmlWriterTraceListener : System::Diagnostics::TextWriterTraceListener
public class XmlWriterTraceListener : System.Diagnostics.TextWriterTraceListener
type XmlWriterTraceListener = class
inherit TextWriterTraceListener
Public Class XmlWriterTraceListener
Inherits TextWriterTraceListener
- Ereditarietà
Esempio
Nell'esempio di codice seguente viene illustrato l'uso della XmlWriterTraceListener classe per scrivere dati di escape e non preceduti da caratteri di escape nei log dei file.
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
Commenti
Nota
Per creare un'istanza della classe è necessario disporre dell'autorizzazione XmlWriterTraceListener del codice non gestito.
La XmlWriterTraceListener classe converte le informazioni di traccia e debug in un flusso di testo con codifica XML. La descrizione dell'output XML viene visualizzata nelle tabelle seguenti. È possibile utilizzare lo strumento Visualizzatore traccia servizio (SvcTraceViewer.exe) per visualizzare l'output XML.
È possibile creare un XmlWriterTraceListener oggetto nel codice. In alternativa, per le app .NET Framework è possibile abilitare o disabilitare un XmlWriterTraceListener tramite il file di configurazione dell'applicazione e quindi usare il configurato XmlWriterTraceListener nell'applicazione. Per configurare un XmlWriterTraceListeneroggetto , modificare il file di configurazione corrispondente al nome dell'applicazione. In questo file è possibile aggiungere o rimuovere un listener, impostare le proprietà per un listener o rimuovere listener. Il file di configurazione deve essere formattato come nell'esempio seguente.
<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 classe eredita la Filter proprietà dalla classe TraceListenerbase . La Filter proprietà consente un ulteriore livello di filtro dell'output di traccia nel listener. Se è presente un filtro, i Trace
metodi del listener di traccia chiamano il ShouldTrace metodo del filtro per determinare se generare la traccia.
Nota
Se si tenta di scrivere in un file in uso o non disponibile, il nome del file viene preceduto automaticamente da un GUID.
Nota
I metodi listener devono essere chiamati dai metodi delle Debugclassi , Tracee TraceSource . I metodi del listener non devono essere chiamati direttamente dal codice dell'applicazione. Il XmlWriterTraceListener listener è destinato principalmente all'uso della TraceSource classe . I Write metodi e WriteLine possono essere chiamati dalle Trace classi e Debug e i valori predefiniti vengono forniti per gli elementi XML per i quali Trace non Debug vengono forniti valori.
Nella tabella seguente vengono descritti gli elementi e gli attributi dell'output XML.
Elemento | Attributi | Output | Note |
---|---|---|---|
CallStack |
nessuno | Dipende dalla presenza del Callstack flag nella TraceOutputOptions proprietà . | I caratteri speciali, > ad esempio o < , vengono sostituiti con sequenze di escape. Vedere la tabella di conversione dei caratteri di escape riportata di seguito. |
Computer |
nessuno | Sempre presente. | Il valore della proprietà MachineName. |
Correlation |
ActivityID |
Sempre presente | Se non specificato, il valore predefinito è un GUID vuoto. |
RelatedActivityID |
Dipende dalla presenza del relatedActivityId parametro nella chiamata al metodo Trace. |
Il parametro relatedActivityId del metodo TraceTransfer. |
|
DataItem |
nessuno | Dipende dal data parametro del TraceData metodo . |
Questo elemento può contenere una matrice di elementi o un elemento, quindi i valori vengono scritti come set di DataItem nodi sotto l'elemento TraceData .L'output dei dati usa il ToString metodo degli oggetti dati passati. |
EventID |
nessuno | Sempre presente. | Input del parametro (id ). |
Execution |
ProcessName |
Sempre presente. | TraceEventCacheDa . |
ProcessID |
Sempre presente. | Dall'oggetto TraceEventCache. | |
ThreadID |
Sempre presente. | Dall'oggetto TraceEventCache. | |
Level |
nessuno | Sempre presente. | Input del parametro (valore numerico di eventType ). I valori dei parametri maggiori di 255 vengono restituiti come 255. |
LogicalOperationStack |
nessuno | Dipende dalla presenza del LogicalOperationStack flag nella TraceOutputOptions proprietà. | È possibile usare più operazioni logiche, quindi i valori vengono scritti come LogicalOperation nodi nell'elemento LogicalOperationStack . |
Message |
nessuno | Dipende dalla presenza di un messaggio nella chiamata al metodo Trace. | Questo elemento è un messaggio formattato se vengono forniti argomenti di formattazione. |
Source |
Name |
Sempre presente. | Input dei parametri. |
SubType |
Name |
Sempre presente. | Input dei parametri. |
TimeCreated |
SystemTime |
Sempre presente. | Se non presente in TraceEventCache, il valore predefinito è l'ora corrente. |
TimeStamp |
nessuno | Dipende dalla presenza del Timestamp flag nella TraceOutputOptions proprietà. | Dall'oggetto TraceEventCache. |
Type |
nessuno | Sempre presente. | Sempre il valore 3. |
Nella tabella seguente vengono illustrati i caratteri di escape nell'output XML. L'eliminazione si verifica in tutti gli elementi e gli attributi, ad eccezione dell'elemento DataItem
, che non viene eseguito l'escape se l'oggetto passato al data
parametro del TraceData metodo è un XPathNavigator oggetto. Se viene XPathNavigator usato un oggetto per l'oggetto dati, il metodo viene chiamato e l'intero MoveToRoot nodo radice viene tracciato come dati non distribuiti.
Caratteri di escape | Valore |
---|---|
& | & |
< | < |
> | > |
" | " |
|' | |
0xD | |
0xA |
Costruttori
XmlWriterTraceListener(Stream) |
Inizializza una nuova istanza della classe XmlWriterTraceListener, utilizzando il flusso specificato come destinatario dell'output di debug o di tracciatura. |
XmlWriterTraceListener(Stream, String) |
Inizializza una nuova istanza della classe XmlWriterTraceListener con il nome specificato, utilizzando il flusso specificato come destinatario dell'output di debug o di tracciatura. |
XmlWriterTraceListener(String) |
Inizializza una nuova istanza della classe XmlWriterTraceListener, utilizzando il file specificato come destinatario dell'output di debug o di tracciatura. |
XmlWriterTraceListener(String, String) |
Inizializza una nuova istanza della classe XmlWriterTraceListener con il nome specificato, utilizzando il file specificato come destinatario dell'output di debug o di tracciatura. |
XmlWriterTraceListener(TextWriter) |
Inizializza una nuova istanza della classe XmlWriterTraceListener, utilizzando il writer specificato come destinatario dell'output di debug o di tracciatura. |
XmlWriterTraceListener(TextWriter, String) |
Inizializza una nuova istanza della classe XmlWriterTraceListener con il nome specificato, utilizzando il writer specificato come destinatario dell'output di debug o di tracciatura. |
Proprietà
Attributes |
Ottiene gli attributi personalizzati del listener di traccia definiti nel file di configurazione dell'applicazione. (Ereditato da TraceListener) |
Filter |
Ottiene o imposta il filtro di traccia per il listener di traccia. (Ereditato da TraceListener) |
IndentLevel |
Ottiene o imposta il livello di rientro. (Ereditato da TraceListener) |
IndentSize |
Ottiene o imposta il numero di spazi in un rientro. (Ereditato da TraceListener) |
IsThreadSafe |
Ottiene un valore che indica se il listener di traccia è thread-safe. (Ereditato da TraceListener) |
Name |
Ottiene o imposta un nome per l'oggetto TraceListener. (Ereditato da TraceListener) |
NeedIndent |
Ottiene o imposta un valore che indica se impostare il rientro dell'output. (Ereditato da TraceListener) |
TraceOutputOptions |
Ottiene o imposta le opzioni dell'output di traccia. (Ereditato da TraceListener) |
Writer |
Ottiene o imposta il writer di testo che riceve l'output di tracciatura o di debug. (Ereditato da TextWriterTraceListener) |
Metodi
Close() |
Chiude la classe Writer per questo listener in modo che non riceva più output di tracciatura o di debug. |
CreateObjRef(Type) |
Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto. (Ereditato da MarshalByRefObject) |
Dispose() |
Rilascia tutte le risorse usate da TraceListener. (Ereditato da TraceListener) |
Dispose(Boolean) |
Elimina questo oggetto TextWriterTraceListener. (Ereditato da TextWriterTraceListener) |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
Fail(String) |
Genera un messaggio di errore nel listener creato durante l'implementazione della classe TraceListener. (Ereditato da TraceListener) |
Fail(String, String) |
Scrive informazioni di traccia, compresi un messaggio di errore e un messaggio di errore dettagliato, nel file o nel flusso. |
Flush() |
Scarica il buffer di output per la classe Writer. (Ereditato da TextWriterTraceListener) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetLifetimeService() |
Obsoleti.
Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza. (Ereditato da MarshalByRefObject) |
GetSupportedAttributes() |
Ottiene gli attributi personalizzati supportati dal listener di traccia. (Ereditato da TraceListener) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
InitializeLifetimeService() |
Obsoleti.
Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
MemberwiseClone(Boolean) |
Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente. (Ereditato da MarshalByRefObject) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
TraceData(TraceEventCache, String, TraceEventType, Int32, Object) |
Scrive informazioni di traccia, un oggetto dati e informazioni di evento nel file o nel flusso. |
TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Scrive informazioni di traccia, oggetti dati e informazioni di evento nel file o nel flusso. |
TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Scrive le informazioni di traccia e di evento nell'output specifico del listener. (Ereditato da TraceListener) |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Scrive informazioni di traccia, un messaggio e informazioni di evento nel file o nel flusso. |
TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Scrive informazioni di traccia, un messaggio formattato e informazioni di evento nel file o nel flusso. |
TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Scrive informazioni di traccia, compresi l'identità di un'attività correlata, un messaggio e informazioni di evento, nel file o nel flusso. |
Write(Object) |
Scrive il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener. (Ereditato da TraceListener) |
Write(Object, String) |
Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener. (Ereditato da TraceListener) |
Write(String) |
Scrive nel file o nel flusso un messaggio testuale senza informazioni di contesto aggiuntive. |
Write(String, String) |
Scrive un nome di categoria e un messaggio nel listener creato durante l'implementazione della classe TraceListener. (Ereditato da TraceListener) |
WriteIndent() |
Inserisce il rientro nel listener creato quando si implementa questa classe e reimposta la proprietà NeedIndent su |
WriteLine(Object) |
Scrive il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener, seguito da un terminatore di riga. (Ereditato da TraceListener) |
WriteLine(Object, String) |
Scrive un nome di categoria e il valore del metodo ToString() dell'oggetto nel listener creato durante l'implementazione della classe TraceListener, seguito da un terminatore di riga. (Ereditato da TraceListener) |
WriteLine(String) |
Scrive nel file o nel flusso un messaggio testuale privo di informazioni di contesto aggiuntive, seguito dal terminatore di riga corrente. |
WriteLine(String, String) |
Scrive un nome di categoria e un messaggio nel listener creato durante l'implementazione della classe TraceListener, seguiti da un terminatore di riga. (Ereditato da TraceListener) |