Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Annotazioni
Questo articolo è specifico di .NET Framework. Non si applica alle implementazioni più recenti di .NET, incluse .NET 6 e versioni successive.
Quando si usa Trace, Debug e TraceSource, è necessario disporre di un meccanismo per raccogliere e registrare i messaggi inviati. I messaggi di traccia vengono ricevuti dai listener. Lo scopo di un listener è raccogliere, archiviare e instradare i messaggi di traccia. I listener indirizzano l'output di traccia a una destinazione appropriata, ad esempio un log, una finestra o un file di testo.
I listener sono disponibili per le classi Debug, Trace e TraceSource , ognuna delle quali può inviare l'output a un'ampia gamma di oggetti listener. Di seguito sono riportati i listener predefiniti di uso comune:
Un TextWriterTraceListener reindirizza l'output a un'istanza della TextWriter classe o a qualsiasi elemento che sia una Stream classe . Può anche scrivere nella console o in un file, perché si tratta di Stream classi.
Un EventLogTraceListener reindirizza l'output a un registro eventi.
Un DefaultTraceListener genera messaggi Write e WriteLine al metodo OutputDebugString e al metodo Debugger.Log . In Visual Studio i messaggi di debug vengono visualizzati nella finestra Output. I messaggi di errore Fail e i messaggi di Assert generano anche l'API Windows OutputDebugString e il metodo Debugger.Log e determinano la visualizzazione di una finestra di messaggio. Questo comportamento è il comportamento predefinito per i messaggi di Debug e di Trace, perché DefaultTraceListener viene incluso automaticamente in ogni
Listenersraccolta ed è l'unico listener incluso automaticamente.Un ConsoleTraceListener indirizza l'output di traccia o di debug all'output standard o al flusso di errore standard.
Un DelimitedListTraceListener indirizza l'output di traccia o debug a uno scrittore di testo, come ad esempio uno scrittore di flusso, o a un flusso, come ad esempio un file di flusso. L'output di traccia è in un formato di testo delimitato che usa il delimitatore specificato dalla proprietà Delimiter.
Un XmlWriterTraceListener indirizza l'output di traccia o debug come dati con codifica XML a un TextWriter o a un Stream, ad esempio un FileStream.
Se si vuole che qualsiasi listener oltre DefaultTraceListener riceva Debug, Trace e TraceSource output, è necessario aggiungerlo alla raccolta Listeners. Per ulteriori informazioni, consultare Guida: Creare e inizializzare i listener di traccia e Guida: Utilizzare TraceSource e i filtri con i listener di traccia. Qualsiasi listener nella raccolta Listener riceve gli stessi messaggi dai metodi di tracciamento. Si supponga, ad esempio, di configurare due listener: TextWriterTraceListener e EventLogTraceListener. Ogni listener riceve lo stesso messaggio.
TextWriterTraceListener indirizza l'output a un flusso e EventLogTraceListener indirizza l'output a un registro eventi.
Nell'esempio seguente viene illustrato come inviare l'output all'insieme Listener .
' Use this example when debugging.
Debug.WriteLine("Error in Widget 42")
' Use this example when tracing.
Trace.WriteLine("Error in Widget 42")
// Use this example when debugging.
System.Diagnostics.Debug.WriteLine("Error in Widget 42");
// Use this example when tracing.
System.Diagnostics.Trace.WriteLine("Error in Widget 42");
Il debug e la traccia condividono la stessa raccolta Listener , quindi se si aggiunge un oggetto listener a un insieme Debug.Listener nell'applicazione, viene aggiunto anche all'insieme Trace.Listen .
L'esempio seguente illustra come usare un listener per inviare informazioni di traccia a una console:
Trace.Listeners.Clear()
Trace.Listeners.Add(New TextWriterTraceListener(Console.Out))
System.Diagnostics.Trace.Listeners.Clear();
System.Diagnostics.Trace.Listeners.Add(
new System.Diagnostics.TextWriterTraceListener(Console.Out));
ascoltatori di Developer-Defined
È possibile definire listener personalizzati ereditando dalla classe di base TraceListener ed eseguendo l'override dei relativi metodi con i metodi personalizzati. Per altre informazioni sulla creazione di listener definiti dallo sviluppatore, vedere TraceListener nella guida di riferimento del .NET Framework.