Nyomkövetési figyelők
Feljegyzés
Ez a cikk a .NET-keretrendszer 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 kimenet átirányítása az TextWriter osztály egy példányára vagy bármire, amely 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 kimenet nyomon követését vagy hibakeresését szövegírókhoz, például streamírókhoz vagy streamekhez, például fájlstreamekhez 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ódolt adatokként TextWriter történő nyomkövetést vagy hibakeresést egy vagy egy Stream, például egy FileStream.
Ha azt szeretné, hogy a hibakeresés, a nyomkövetés és TraceSource a DefaultTraceListener kimenet fogadása mellett bármely figyelőt is megkapjon, azt hozzá kell adnia 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));
Fejlesztő által definiált figyelők
Saját figyelőket úgy határozhat meg, hogy örökli a TraceListener alaposztályt, és felül kell bírálni a metódusait a testreszabott metódusokkal. A fejlesztő által definiált figyelők létrehozásával kapcsolatos további információkért lásd TraceListener a .NET-keretrendszer referenciát.