Condividi tramite


XmlWriterTraceListener Classe

Definizione

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

(Ereditato da TraceListener)
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.

Si applica a