Partage via


Écouteurs de la trace

Remarque

Cet article est spécifique au .NET Framework. Ceci ne s’applique pas aux implémentations plus récentes de .NET, y compris .NET 6 et versions ultérieures.

Quand vous utilisez Trace, Debug et TraceSource, vous devez disposer d’un mécanisme de collecte et d’enregistrement des messages envoyés. Les messages de suivi sont reçus par des écouteurs. Le but d'un écouteur est de collecter, de stocker et de router les messages de suivi. Les écouteurs dirigent la sortie de suivi vers une cible appropriée, telle qu'un journal, une fenêtre ou un fichier de texte.

Les écouteurs sont disponibles pour les classes Debug, Trace et TraceSource, et chacune d’elles peut envoyer sa sortie à de nombreux objets écouteur. Voici les écouteurs prédéfinis couramment utilisés :

  • TextWriterTraceListener redirige la sortie vers une instance de la classe TextWriter ou vers toute classe Stream. Il peut également écrire dans la console ou un fichier, car il s'agit de classes Stream.

  • EventLogTraceListener redirige la sortie vers un journal d'événements.

  • DefaultTraceListener émet des messages Write et WriteLine vers OutputDebugString et la méthode Debugger.Log. Dans Visual Studio, cela entraîne l'affichage des messages de débogage dans la fenêtre de sortie. Les messages Fail et les messages Assert d’échec émettent également vers l’API Windows OutputDebugString et la méthode Debugger.Log, et entraînent aussi l’affichage d’une boîte de message. Ce comportement est le comportement par défaut pour les messages Debug et Trace, car DefaultTraceListener est le seul écouteur automatiquement inclus dans chaque collection Listeners.

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

  • DelimitedListTraceListener dirige la sortie de traçage ou de débogage vers un writer de texte (par ex., un writer de flux), ou vers un flux de données (par ex., un flux de fichiers). La sortie de trace a un format de texte délimité qui utilise le délimiteur spécifié par la propriété Delimiter.

  • XmlWriterTraceListener dirige la sortie de traçage ou de débogage sous forme de données encodées en XML vers un TextWriter ou un Stream, par exemple, un FileStream.

Si vous voulez qu’un autre écouteur en plus de DefaultTraceListener reçoive également la sortie de Debug, Trace et TraceSource, vous devez l’ajouter à la collection Listeners. Pour plus d’informations, consultez Guide pratique pour créer et initialiser des écouteurs de suivi et Guide pratique pour utiliser un TraceSource et des filtres avec des écouteurs de suivi. N’importe quel écouteur de la collection Listeners reçoit les mêmes messages en provenance des méthodes de sortie de suivi. Par exemple, supposons que vous définissiez deux écouteurs : TextWriterTraceListener et EventLogTraceListener. Chaque écouteur reçoit le même message. TextWriterTraceListener dirige sa sortie vers un flux et EventLogTraceListener dirige sa sortie vers un journal des événements.

L’exemple suivant montre comment envoyer la sortie vers 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");

Debug et Trace 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));

É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 remplaçant ses méthodes par vos méthodes personnalisées. Pour plus d'informations sur la création d'écouteurs définis par le développeur, voir TraceListener dans la documentation .NET Framework.

Voir aussi