Sdílet prostřednictvím


Naslouchací procesy trasování

Poznámka:

Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.

Při použití trasování, ladění a TraceSource, musíte mít mechanismus pro shromažďování a nahrávání odesílaných zpráv. Trasovací zprávy přijímají naslouchací procesy. Úč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í procesy jsou k dispozici pro ladicí, trasování a TraceSource třídy, z nichž každý může odesílat výstup do různých objektů naslouchacího procesu. Toto jsou běžně používané předdefinované naslouchací procesy:

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

  • Přesměruje EventLogTraceListener výstup do protokolu událostí.

  • A DefaultTraceListener generuje write a WriteLine zprávy OutputDebugString a Debugger.Log metoda. V sadě Visual Studio se zprávy ladění zobrazí v okně Výstup. Neúspěšné a neúspěšné zprávy Assert také generují do rozhraní API systému Windows OutputDebugString a metody Debugger.Log a také způsobit zobrazení pole zprávy. Toto chování je výchozím chováním zpráv ladění a trasování , protože DefaultTraceListener je automaticky zahrnut do každé Listeners kolekce a je jediným naslouchacím procesem automaticky zahrnutý.

  • Směruje ConsoleTraceListener trasování nebo ladění výstupu do standardního výstupu nebo standardního datového proudu chyb.

  • Směruje DelimitedListTraceListener trasování nebo ladění výstupu do textového zapisovače, jako je zapisovač streamu, nebo do datového proudu, jako je datový proud souboru. Výstup trasování je v textovém formátu s oddělovačem určeným Delimiter vlastností.

  • Směruje XmlWriterTraceListener trasování nebo ladění výstupu jako data kódovaná kódem XML do TextWriter nebo do objektu Stream, jako FileStreamje například .

Pokud chcete, aby jakýkoli naslouchací proces kromě příjmu DefaultTraceListener ladění, trasování a TraceSource výstupu, musíte ho Listeners přidat do kolekce. Další informace naleznete v tématu Postupy: Vytvoření a inicializace naslouchacích procesů trasování a postupy: Použití TraceSource a filtrů s naslouchacími procesy 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í procesy: TextWriterTraceListener a EventLogTraceListener. Každý naslouchací proces obdrží stejnou zprávu. TextWriterTraceListener by směroval výstup do datového proudu a EventLogTraceListener by směroval výstup do protokolu událostí.

Následující příklad ukazuje, jak odeslat výstup do kolekce Naslouchací procesy .

' 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 do kolekce Debug.Listeners ve vaší aplikaci přidáte objekt naslouchacího procesu, přidá se také do kolekce Trace.Listeners.

Následující příklad ukazuje, jak pomocí naslouchacího procesu odesílat trasovací informace 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));

Naslouchací procesy definované vývojářem

Vlastní naslouchací procesy můžete definovat tak, že zdědíte základní třídu TraceListener a přepíšete její metody vlastními metodami. Další informace o vytváření naslouchacích procesů definovaných vývojářem najdete v referenčních informacích TraceListener k rozhraní .NET Framework.

Viz také