Naslouchací procesy trasování

Při použití trasování, ladění a musíte mít mechanismus pro shromažďování a zaznamenávání odesílaných TraceSource zpráv. Trasovací zprávy jsou přijímány naslouchači. Účelem tohoto naslouchací proces je shromažďování, ukládání a směrovat trasovací zprávy. Posluchači přímý výstup trasování příslušný cíli, jako je protokol, okno nebo textový soubor.

Naslouchací proces je k dispozici pro třídy Ladění, Trasování a , z nichž každý může odesílat svůj výstup do různých TraceSource objektů naslouchacího procesu. Toto jsou běžně používané předdefinované naslouchací programy:

  • Výstup TextWriterTraceListener přesměruje do instance třídy nebo na TextWriter cokoli, co je Stream třída. Může také zapisovat do konzoly nebo do souboru, protože se jedná o Stream třídy.

  • Výstup EventLogTraceListener se přesměruje do protokolu událostí.

  • DefaultTraceListener Vysílá zprávy Write a WriteLine do OutputDebugString a do metody Debugger.Log. V Visual Studio to způsobí, že se zprávy ladění zobrazí v okně Výstup. Neúspěšné a neúspěšné zprávy Assert se také vysílají do výstupního Windows API a metody Debugger.Log a také způsobí zobrazení okna se zprávou. Toto chování je výchozí chování pro zprávy ladění a trasování, protože DefaultTraceListener je automaticky zahrnut do každé kolekce a je jediným naslouchacím Listeners procesem automaticky zahrnut.

  • Výstup ConsoleTraceListener trasování nebo ladění směruje do standardního výstupu nebo standardního chybového streamu.

  • Výstup trasování nebo ladění směruje do zapisovače textu, jako je zapisovač datového proudu, nebo do datového DelimitedListTraceListener proudu, jako je například datový proud souboru. Výstup trasování je ve formátu textu s oddělovači, který používá oddělovač určený Delimiter vlastností .

  • Výstup trasování nebo ladění směruje jako data kódovaná xml do objektu XmlWriterTraceListener nebo , jako je například TextWriter Stream FileStream .

Pokud chcete, aby kterýkoli naslouchací proces kromě přijímán DefaultTraceListener jako Debug(Ladění), Trace (Trasování) a TraceSource output (výstup), musíte ho přidat do Listeners kolekce. Další informace najdete v tématu Postupy: Vytváření a inicializace naslouchacích služeb trasování a Postupy: Použití traceSource a filtrů s naslouchači trasování. Každý naslouchací proces v kolekci Naslouchacích proces získá stejné zprávy z výstupních metod trasování. Předpokládejme například, že jste nastavili dva naslouchací proces: TextWriterTraceListener a EventLogTraceListener. Každý naslouchací proces obdrží stejnou zprávu. TextWriterTraceListener bude směrovat svůj výstup do datového proudu a EventLogTraceListener bude směrovat svůj výstup do protokolu událostí.

Následující příklad ukazuje, jak odeslat výstup do kolekce naslouchacích objektů.

' 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");  

Ladění a trasování sdílí stejnou kolekci naslouchacích procesů, takže pokud přidáte objekt naslouchacího procesu do kolekce Debug.Listeners ve vaší aplikaci, přidá se také do kolekce Trace.Listeners.

Následující příklad ukazuje použití naslouchacího procesu k odeslání informací o trasování do konzoly:

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));  

Developer-Defined naslouchacích zařízení

Vlastní naslouchací proces můžete definovat tak, že dědíte ze základní třídy TraceListener a přepíšete její metody vlastními metodami. Další informace o vytváření naslouchacích nástrojů definovaných vývojáře najdete v TraceListener referenčních .NET Framework článku.

Viz také