Nyomkövetési figyelők

Megjegyzés:

Ez a cikk a .NET-keretrendszerre vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.

Nyomkövetés, hibakeresés és TraceSource– az elküldött üzenetek gyűjtésére és rögzítésére szolgáló mechanizmussal kell rendelkeznie. A nyomkövetési üzeneteket a figyelők fogadják. A figyelő célja a nyomkövetési üzenetek gyűjtése, tárolása és átirányítása. A figyelők a nyomkövetési kimenetet egy megfelelő célhoz, például naplóhoz, ablakhoz vagy szövegfájlhoz irányítják.

A figyelők elérhetők a Hibakeresés, a Nyomkövetés és TraceSource az osztályok számára, amelyek mindegyike különböző figyelőobjektumoknak küldheti el a kimenetét. A leggyakrabban használt előre definiált figyelők a következők:

  • A TextWriterTraceListener átirányítja a kimenetet az TextWriter osztály egy példányára vagy bármire, ami egy Stream osztály. A konzolra vagy egy fájlba is írhat, mert ezek Stream osztályok.

  • Egy EventLogTraceListener eseménynaplóba átirányítja a kimenetet.

  • A DefaultTraceListener rendszer írási és writeLine-üzeneteket bocsát ki az OutputDebugString és a Debugger.Log metódus számára. A Visual Studióban ez azt eredményezi, hogy a hibakeresési üzenetek megjelennek a Kimeneti ablakban. A sikertelen és sikertelen érvényességi üzenetek az OutputDebugString Windows API-nak és a Debugger.Log metódusnak is kibocsáthatók, és egy üzenetmező is megjelenik. Ez a viselkedés a hibakeresési és nyomkövetési üzenetek alapértelmezett viselkedése, mivel a DefaultTraceListener automatikusan szerepel minden Listeners gyűjteményben, és ez az egyetlen figyelő, amely automatikusan szerepel benne.

  • A ConsoleTraceListener kimenet nyomon követését vagy hibakeresését a standard kimenetre vagy a standard hibastreamre irányítja.

  • A DelimitedListTraceListener követési vagy hibakeresési kimenetet egy szövegíróhoz, például egy streamíróhoz, vagy egy streamhez, például egy fájlstreamhez irányítja. A nyomkövetési kimenet a tulajdonság által Delimiter megadott elválasztót használó, tagolt szövegformátumban van.

  • Az XmlWriterTraceListener XML-kódként irányítja a nyomkövetési vagy hibakeresési outputot egy TextWriter vagy Stream-re, például egy FileStream.

Ha azt szeretné, hogy a DefaultTraceListener, a követés, és kimenetét bármely figyelő megkapja a TraceSource fogadása mellett, hozzá kell adnia azt a Listeners gyűjteményhez. További információt a Nyomkövetési figyelők létrehozása és inicializálása , valamint a TraceSource és szűrők használata nyomkövetésfigyelőkkel című témakörben talál. A Figyelők gyűjtemény bármely figyelője ugyanazokat az üzeneteket kapja a nyomkövetési kimeneti metódusoktól. Tegyük fel például, hogy két figyelőt állított be: egy TextWriterTraceListenert és egy EventLogTraceListenert. Minden figyelő ugyanazt az üzenetet kapja. A TextWriterTraceListener egy streamre irányítja a kimenetét, az EventLogTraceListener pedig egy eseménynaplóba irányítja a kimenetet.

Az alábbi példa bemutatja, hogyan küldhet kimenetet a Figyelők gyűjteménynek .

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

A hibakeresés és a nyomkövetés ugyanazt a figyelőgyűjteményt használja, ezért ha egy figyelőobjektumot ad hozzá egy Debug.Listeners-gyűjteményhez az alkalmazásban, az is bekerül a Trace.Listeners gyűjteménybe.

Az alábbi példa bemutatja, hogyan küldhet nyomkövetési adatokat egy konzolnak egy figyelő használatával:

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 hallgatók

Saját figyelőket úgy határozhat meg, hogy az TraceListener alaposztályból örököl, és annak metódusait a saját testreszabott metódusaival felülírja. A fejlesztő által definiált figyelők létrehozásáról a .NET-keretrendszer referenciájában talál TraceListener további információt.

Lásd még