Nyomkövetési figyelők

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.

Lásd még