Share via


Spåra lyssnare

När du använder Trace, Debug och TraceSourcemåste du ha en mekanism för att samla in och registrera de meddelanden som skickas. Spårningsmeddelanden tas emot av lyssnare. Syftet med en lyssnare är att samla in, lagra och dirigera spårningsmeddelanden. Lyssnare dirigerar spårningsutdata till ett lämpligt mål, till exempel en logg-, fönster- eller textfil.

Lyssnare är tillgängliga för de felsöknings-, spårnings- och klasserna, som var och TraceSource en kan skicka utdata till en mängd olika lyssnarobjekt. Följande är de vanliga fördefinierade lyssnarna:

  • En TextWriterTraceListener omdirigerar utdata till en instans av TextWriter klassen eller till något som är en Stream klass. Den kan också skriva till konsolen eller till en fil, eftersom det här är Stream klasser.

  • En EventLogTraceListener omdirigerar utdata till en händelselogg.

  • A genererar Skriv- och WriteLine-meddelanden till outputDebugString och till metoden Debugger.Log.DefaultTraceListener Detta gör att felsökningsmeddelandena visas i fönstret Utdata i Visual Studio. Misslyckade och misslyckade Assert-meddelanden sänder också ut till OutputDebugString Windows API och metoden Debugger.Log , och gör också att en meddelanderuta visas. Det här beteendet är standardbeteendet för felsöknings - och spårningsmeddelanden , eftersom DefaultTraceListener automatiskt ingår i varje Listeners samling och är den enda lyssnaren som inkluderas automatiskt.

  • En ConsoleTraceListener dirigerar spårning eller felsökning av utdata till antingen standardutdata eller standardfelströmmen.

  • En DelimitedListTraceListener dirigerar spårning eller felsökning av utdata till en textskrivare, till exempel en strömskrivare eller till en ström, till exempel en filström. Spårningsutdata är i ett avgränsat textformat som använder avgränsare som anges av Delimiter egenskapen.

  • En XmlWriterTraceListener dirigerar spårning eller felsökning av utdata som XML-kodade data till en TextWriter eller till en Stream, till exempel en FileStream.

Om du vill att någon lyssnare förutom DefaultTraceListener ska ta emot Felsökning, Spårning och TraceSource utdata måste du lägga till den i Listeners samlingen. Mer information finns i Skapa och initiera spårningslyssnare och Så här använder du TraceSource och filter med spårningslyssnare. Alla lyssnare i lyssnarsamlingen får samma meddelanden från spårningsutdatametoderna. Anta till exempel att du konfigurerar två lyssnare: en TextWriterTraceListener och en EventLogTraceListener. Varje lyssnare får samma meddelande. TextWriterTraceListener dirigerar utdata till en ström och EventLogTraceListener dirigerar utdata till en händelselogg.

I följande exempel visas hur du skickar utdata till samlingen Lyssnare.

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

Felsökning och spårning delar samma lyssnarsamling , så om du lägger till ett lyssnarobjekt i en Debug.Listeners-samling i ditt program läggs den även till i samlingen Trace.Listeners .

I följande exempel visas hur du använder en lyssnare för att skicka spårningsinformation till en konsol:

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

Utvecklardefinierade lyssnare

Du kan definiera dina egna lyssnare genom att ärva från basklassen TraceListener och åsidosätta dess metoder med dina anpassade metoder. Mer information om hur du skapar utvecklardefinierade lyssnare TraceListener finns i .NET Framework-referensen.

Se även