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 XmlWriterTraceListener della classe per scrivere dati di escape e non 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
È necessario disporre dell'autorizzazione di codice non gestita 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. È possibile usare lo strumento Visualizzatore traccia del 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 la configurazione 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 l'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.
Nota
Se viene eseguito un tentativo di scrittura in un file in uso o non disponibile, il nome del file viene prefisso 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 è principalmente destinato all'uso dalla 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 TraceDebug non forniscono valori per.
La tabella seguente descrive gli elementi e gli attributi dell'output XML.
Elemento | Attributi | Output | Note |
---|---|---|---|
CallStack |
nessuno | Dipende dalla presenza del Callstack flag nella TraceOutputOptions proprietà. | Caratteri speciali come > o < vengono sostituiti con sequenze di escape. Vedere la tabella di traduzione 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, 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 dei parametri (id ). |
Execution |
ProcessName |
Sempre presente. | Dall'oggetto TraceEventCache. |
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 DataItem
, che non viene preceduto da un carattere di escape se l'oggetto 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.
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) |
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: nel corso del 2024 verranno dismessi i problemi di GitHub come meccanismo di feedback per il contenuto e verranno sostituiti con un nuovo sistema di feedback. Per altre informazioni, vedere:Invia e visualizza il feedback per