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 traccia o debug come dati con codifica XML a un TextWriter oggetto o a un Streamoggetto , ad esempio .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 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
Annotazioni
È necessario disporre dell'autorizzazione di codice non gestito per creare un'istanza della XmlWriterTraceListener classe .
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 che seguono. Per visualizzare l'output XML, è possibile usare lo strumento Visualizzatore traccia del servizio (SvcTraceViewer.exe ).
È possibile creare un oggetto XmlWriterTraceListener nel codice. In alternativa, per le app .NET Framework, è possibile abilitare o disabilitare un tramite XmlWriterTraceListener 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 livello aggiuntivo 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.
Annotazioni
Se si tenta di scrivere in un file in uso o non disponibile, il nome del file viene preceduto automaticamente da un GUID.
Annotazioni
I metodi del 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 da parte 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 che Trace e Debug non forniscono valori per .
Nella tabella seguente vengono descritti gli elementi e gli attributi dell'output XML.
| Elemento | Attributi | Risultato | 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 traduzione dei caratteri di escape riportata di seguito. |
Computer |
Nessuno | Sempre presente. | Valore della MachineName proprietà. |
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. |
Parametro relatedActivityId del TraceTransfer metodo . |
|
DataItem |
Nessuno | Dipende dal data parametro del TraceData metodo . |
Questo elemento può contenere una matrice di elementi o un elemento, pertanto i valori vengono scritti come set di DataItem nodi nell'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. | TraceEventCacheDa . | |
ThreadID |
Sempre presente. | TraceEventCacheDa . | |
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à . | Possono essere presenti 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 del parametro. |
SubType |
Name |
Sempre presente. | Input del parametro. |
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à . | TraceEventCacheDa . |
Type |
Nessuno | Sempre presente. | Sempre il valore 3. |
Nella tabella seguente vengono illustrati i caratteri di escape nell'output XML. L'escape si verifica in tutti gli elementi e gli attributi ad eccezione dell'elemento , che non viene preceduto da escape se l'oggetto DataItem passato al data parametro del TraceData metodo è un XPathNavigator oggetto .
XPathNavigator Se viene usato un oggetto per l'oggetto dati, viene chiamato il MoveToRoot metodo e l'intero nodo radice viene tracciato come dati senza caratteri di escape.
| Carattere di escape | Valore |
|---|---|
| & | & |
| < | < |
| > | > |
| " | " |
| |' | |
| 0xD | |
| 0xA |
Costruttori
| Nome | Descrizione |
|---|---|
| XmlWriterTraceListener(Stream, String) |
Inizializza una nuova istanza della XmlWriterTraceListener classe con il nome specificato, utilizzando il flusso specificato come destinatario dell'output di debug e traccia. |
| XmlWriterTraceListener(Stream) |
Inizializza una nuova istanza della XmlWriterTraceListener classe utilizzando il flusso specificato come destinatario dell'output di debug e traccia. |
| XmlWriterTraceListener(String, String) |
Inizializza una nuova istanza della XmlWriterTraceListener classe con il nome specificato, utilizzando il file specificato come destinatario dell'output di debug e traccia. |
| XmlWriterTraceListener(String) |
Inizializza una nuova istanza della XmlWriterTraceListener classe utilizzando il file specificato come destinatario dell'output di debug e traccia. |
| XmlWriterTraceListener(TextWriter, String) |
Inizializza una nuova istanza della XmlWriterTraceListener classe con il nome specificato, utilizzando il writer specificato come destinatario dell'output di debug e traccia. |
| XmlWriterTraceListener(TextWriter) |
Inizializza una nuova istanza della XmlWriterTraceListener classe utilizzando il writer specificato come destinatario dell'output di debug e traccia. |
Proprietà
| Nome | Descrizione |
|---|---|
| Attributes |
Ottiene gli attributi del listener di traccia personalizzati 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 di output della traccia. (Ereditato da TraceListener) |
| Writer |
Ottiene o imposta il writer di testo che riceve l'output di traccia o debug. (Ereditato da TextWriterTraceListener) |
Metodi
| Nome | Descrizione |
|---|---|
| Close() |
Chiude per questo listener in modo che non riceva più l'output Writer di traccia o debug. |
| CreateObjRef(Type) |
Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto. (Ereditato da MarshalByRefObject) |
| Dispose() |
Rilascia tutte le risorse usate da TraceListener. (Ereditato da TraceListener) |
| Dispose(Boolean) |
Elimina questo TextWriterTraceListener oggetto. (Ereditato da TextWriterTraceListener) |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Fail(String, String) |
Scrive informazioni di traccia, inclusi un messaggio di errore e un messaggio di errore dettagliato nel file o nel flusso. |
| Fail(String) |
Genera un messaggio di errore al listener creato quando si implementa la TraceListener classe . (Ereditato da TraceListener) |
| Flush() |
Scarica il buffer di output per .Writer (Ereditato da TextWriterTraceListener) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetLifetimeService() |
Obsoleti.
Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza. (Ereditato da MarshalByRefObject) |
| GetSupportedAttributes() |
Ottiene gli attributi personalizzati supportati dal listener di traccia. (Ereditato da TraceListener) |
| GetType() |
Ottiene il 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 del Objectcorrente. (Ereditato da Object) |
| MemberwiseClone(Boolean) |
Crea una copia superficiale dell'oggetto corrente MarshalByRefObject . (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 sugli eventi nel file o nel flusso. |
| TraceData(TraceEventCache, String, TraceEventType, Int32, Object[]) |
Scrive informazioni di traccia, oggetti dati e informazioni sugli eventi nel file o nel flusso. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String, Object[]) |
Scrive informazioni di traccia, un messaggio formattato e informazioni sugli eventi nel file o nel flusso. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32, String) |
Scrive informazioni di traccia, un messaggio e informazioni sugli eventi nel file o nel flusso. |
| TraceEvent(TraceEventCache, String, TraceEventType, Int32) |
Scrive le informazioni di traccia e evento nell'output specifico del listener. (Ereditato da TraceListener) |
| TraceTransfer(TraceEventCache, String, Int32, String, Guid) |
Scrive informazioni di traccia, tra cui l'identità di un'attività correlata, un messaggio e le informazioni sugli eventi nel file o nel flusso. |
| Write(Object, String) |
Scrive un nome di categoria e il valore del metodo dell'oggetto ToString() nel listener creato quando si implementa la TraceListener classe . (Ereditato da TraceListener) |
| Write(Object) |
Scrive il valore del metodo dell'oggetto ToString() nel listener creato quando si implementa la TraceListener classe . (Ereditato da TraceListener) |
| Write(String, String) |
Scrive un nome di categoria e un messaggio nel listener creato quando si implementa la TraceListener classe . (Ereditato da TraceListener) |
| Write(String) |
Scrive un messaggio verbatim senza informazioni di contesto aggiuntive nel file o nel flusso. |
| WriteIndent() |
Scrive il rientro nel listener creato quando si implementa questa classe e la proprietà viene reimpostata NeedIndent su |
| WriteLine(Object, String) |
Scrive un nome di categoria e il valore del metodo dell'oggetto ToString() nel listener creato quando si implementa la TraceListener classe, seguita da un terminatore di riga. (Ereditato da TraceListener) |
| WriteLine(Object) |
Scrive il valore del metodo dell'oggetto ToString() nel listener creato quando si implementa la TraceListener classe, seguita da un terminatore di riga. (Ereditato da TraceListener) |
| WriteLine(String, String) |
Scrive un nome di categoria e un messaggio nel listener creato quando si implementa la TraceListener classe , seguito da un terminatore di riga. (Ereditato da TraceListener) |
| WriteLine(String) |
Scrive un messaggio verbatim senza informazioni di contesto aggiuntive seguite dal terminatore di riga corrente nel file o nel flusso. |