Delen via


Traceerluisteraars

Opmerking

Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.

Bij het gebruik van Trace, Debug en TraceSource, moet u beschikken over een mechanisme voor het verzamelen en vastleggen van de berichten die worden verzonden. Traceringsberichten worden ontvangen door luisteraars. Het doel van een listener is het verzamelen, opslaan en routeren van traceringsberichten. Listeners leiden de traceringsuitvoer naar een geschikt doel, zoals een logboek, venster of tekstbestand.

Listeners zijn beschikbaar voor de foutopsporings-, tracerings- en TraceSource klassen, die allemaal de uitvoer naar verschillende listenerobjecten kunnen verzenden. Hier volgen de veelgebruikte vooraf gedefinieerde listeners:

  • Een TextWriterTraceListener leidt uitvoer om naar een instantie van de TextWriter klasse of naar iets dat een Stream klasse is. Het kan ook naar de console of naar een bestand schrijven, omdat dit klassen zijn Stream .

  • Een EventLogTraceListener stuurt de uitvoer naar een gebeurtenislogboek.

  • Een DefaultTraceListener verzendt Write - en WriteLine-berichten naar de OutputDebugString en naar de methode Debugger.Log . In Visual Studio worden de foutopsporingsberichten weergegeven in het venster Uitvoer. Fail en mislukte Assert-berichten worden ook verzonden naar de OutputDebugString Windows-API en de methode Debugger.Log en zorgen ervoor dat er een berichtvak wordt weergegeven. Dit gedrag is het standaardgedrag voor foutopsporings - en traceringsberichten , omdat DefaultTraceListener automatisch wordt opgenomen in elke Listeners verzameling en de enige listener is die automatisch wordt opgenomen.

  • Een ConsoleTraceListener leidt tracerings- of foutopsporingsuitvoer naar de standaarduitvoer of de standaardfoutstroom.

  • Een DelimitedListTraceListener stuurt tracerings- of foutopsporingsuitvoer naar een tekstschrijver, zoals een schrijfstroom, of naar een stroom, zoals een bestandenstroom. De traceringsuitvoer heeft een tekstindeling met scheidingstekens die door de Delimiter eigenschap zijn opgegeven.

  • Een XmlWriterTraceListener leidt traceer- of foutopsporingsuitvoer als XML-gecodeerde gegevens naar een TextWriter of naar een Stream, zoals een FileStream.

Als u wilt dat een listener naast de DefaultTraceListenerfoutopsporing, tracering en TraceSource uitvoer ontvangt, moet u deze toevoegen aan de Listeners verzameling. Voor meer informatie, zie de procedure Trace-listeners maken en Trace-listeners initialiseren en de procedure TraceSource en filters gebruiken met trace-listeners. Elke listener in de verzameling Listeners krijgt dezelfde berichten van de traceringsuitvoermethoden. Stel dat u twee listeners instelt: een TextWriterTraceListener en een EventLogTraceListener. Elke listener ontvangt hetzelfde bericht. De TextWriterTraceListener stuurt de uitvoer naar een stroom en de EventLogTraceListener stuurt de uitvoer naar een gebeurtenislogboek.

In het volgende voorbeeld ziet u hoe u uitvoer naar de verzameling Listeners verzendt.

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

Fouten opsporen en traceren delen dezelfde listeners-verzameling , dus als u een listenerobject toevoegt aan een verzameling Debug.Listeners in uw toepassing, wordt deze ook toegevoegd aan de verzameling Trace.Listeners .

In het volgende voorbeeld ziet u hoe u een listener gebruikt om traceringsgegevens naar een console te verzenden:

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 Luisteraars

U kunt uw eigen listeners definiƫren door deze over te nemen van de basisklasse TraceListener en de methoden ervan te overschrijven met uw aangepaste methoden. Zie de naslaginformatie over .NET Framework voor meer informatie over het maken van door ontwikkelaars gedefinieerde listeners TraceListener .

Zie ook