Sdílet prostřednictvím


Naslouchací komponenty 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í Trace, Debug a TraceSource, musíte mít mechanismus pro sběr a zaznamenávání zpráv, které jsou odesílány. Trasovací zprávy přijímají posluchači. Účelem posluchače je shromažďovat, ukládat a směrovat trasovací zprávy. Posluchače směřují výstup trasování do vhodného cíle, jako je protokol, okno nebo textový soubor.

Posluchače jsou dostupné pro třídy Debug, Trace a TraceSource, z nichž každá může odesílat svůj výstup do různých objektů posluchače. Následující jsou běžně používaní předdefinovaní posluchači:

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

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

  • A DefaultTraceListener generuje zprávy Write a WriteLine na metodu OutputDebugString a metodu Debugger.Log. V sadě Visual Studio se zprávy ladění zobrazí v okně Výstup. Fail a neúspěšné zprávy Assert také generují zprávu do rozhraní OutputDebugString API systému Windows a metody Debugger.Log a způsobují zobrazení pole zprávy. Toto chování je výchozí pro zprávy Debug a Trace, protože DefaultTraceListener je automaticky zahrnutý do každé Listeners kolekce a je jediným automaticky zahrnutým posluchačem.

  • ConsoleTraceListener směruje výstup z trasování nebo ladění buď do standardního výstupu, nebo do standardního chybového proudu.

  • 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, který je určen vlastnostmi Delimiter.

  • XmlWriterTraceListener směruje trasování nebo ladění výstupu jako XML-kódovaná data do TextWriter nebo do Stream, například do FileStream.

Pokud chcete, aby jakýkoli naslouchací zařízení kromě DefaultTraceListener přijímal ladění, trasování a TraceSource výstupy, musíte ho přidat do kolekce Listeners. 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ý posluchač v kolekci obdrží 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ý posluchač dostává 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 posluchači.

' 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 posluchačů, takže pokud do kolekce Debug.Listeners ve vaší aplikaci přidáte objekt posluchače, přidá se také do kolekce Trace.Listeners.

Následující příklad ukazuje, jak pomocí naslouchacího objektu odesílat trasovací informace do konzoli.

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

Posluchači Developer-Defined

Vlastní naslouchací aplikace můžete definovat tak, že zdědíte bazovou 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é