Écouteurs de la trace

Mise à jour : novembre 2007

Lorsque vous utilisez Trace, Debug et TraceSource, vous devez avoir un mécanisme pour rassembler et enregistrer les messages qui sont envoyés. Les messages de trace sont reçus par des écouteurs. Le but d'un écouteur est de recueillir, de stocker et de router les messages de trace. Les écouteurs dirigent la sortie du traçage vers une cible appropriée, telle qu'un journal, une fenêtre ou un fichier texte.

Les écouteurs sont disponibles dans les classes Debug, Trace et TraceSource, chacune d'elles pouvant envoyer ses données de sortie à de nombreux objets écouteur. Il existe trois types d'écouteurs prédéfinis :

  • Un TextWriterTraceListener redirige les données de sortie vers une instance de la classe TextWriter ou à toute classe Stream. Il peut également écrire dans la console ou un fichier parce que ce sont des classes Stream.

  • Un EventLogTraceListener redirige les données de sortie vers un journal des événements.

  • Un DefaultTraceListener émet les messages Write et WriteLine vers les méthodes OutputDebugString et Debugger.Log. Dans Visual Studio, cela entraîne l'affichage des messages de débogage dans la fenêtre Sortie. Les messages Fail et d'échec Assert sont également envoyés à l'API Windows OutputDebugString et la méthode Debugger.Log, et entraînent également l'affichage d'un message. Ce comportement est le comportement par défaut pour les messages Debug et Trace parce que DefaultTraceListener est inclus automatiquement dans chaque collection Listeners et est le seul écouteur inclus automatiquement.

  • Un ConsoleTraceListener dirige la sortie de traçage ou de débogage vers la sortie à la sortie standard ou le flux d'erreurs standard.

  • Un DelimitedListTraceListener dirige la sortie de traçage ou de débogage vers un TextWriter, tel qu'un writer de flux de données, ou à un flux de données, tel qu'un flux de données de fichier. Le résultat du suivi est dans un format de texte délimité qui utilise le délimiteur spécifié par la propriété Delimiter.

  • Un XmlWriterTraceListener dirige la sortie de traçage ou de débogage comme des données codées XML à un TextWriter ou à un Stream, tel qu'un FileStream.

Si vous souhaitez un écouteur en plus du DefaultTraceListener pour recevoir une sortie Debug, Trace et TraceSource, vous devez l'ajouter à la collection Listeners. Pour plus d'informations, consultez Comment : créer et initialiser les écouteurs de la trace et Comment : utiliser des TraceSource et des filtres avec des écouteurs de la trace. Tous les écouteurs de la collection Listeners reçoivent les mêmes messages des méthodes de sortie de traçage. Supposons par exemple que vous définissiez deux écouteurs : TextWriterTraceListener et EventLogTraceListener. Chaque écouteur reçoit le même message. L'écouteur TextWriterTraceListener dirige sa sortie vers un flux et l'écouteur EventLogTraceListener dirige sa sortie vers un journal des événements.

L'exemple suivant montre comment envoyer la sortie à la collection Listeners.

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

Le débogage et le traçage partagent la même collection Listeners. Par conséquent, si vous ajoutez un objet écouteur à une collection Debug.Listeners dans votre application, il est également ajouté à la collection Trace.Listeners.

L'exemple suivant montre comment utiliser un écouteur pour envoyer des informations de traçage à une console :

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));
System.Diagnostics.Trace.get_Listeners().Clear();
System.Diagnostics.Trace.get_Listeners().Add(
   new System.Diagnostics.TextWriterTraceListener(Console.get_Out()));

Écouteurs définis par le développeur

Vous pouvez définir vos propres écouteurs en héritant de la classe de base TraceListener et en substituant ses méthodes avec vos méthodes personnalisées. Pour plus d'informations sur la création d'écouteurs définis par le développeur, consultez TraceListener, dans le manuel de référence de Microsoft .NET Framework.

Voir aussi

Concepts

Introduction à l'instrumentation et au traçage

Commutateurs de traçage

Référence

TextWriterTraceListener

EventLogTraceListener

DefaultTraceListener

TraceListener

Autres ressources

Traçage et instrumentation d'applications