Procédure : Créer et initialiser les écouteurs de 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.

Les classes System.Diagnostics.Debug et System.Diagnostics.Trace envoient des messages à des objets appelés écouteurs qui reçoivent et traitent ces messages. L'un de ces écouteurs, System.Diagnostics.DefaultTraceListener, est automatiquement créé et initialisé lors de l'activation du traçage ou du débogage. Si vous voulez que la sortie de Trace ou Debug soit dirigée vers d'autres sources, créez et initialisez des écouteurs de suivi supplémentaires.

Les écouteurs que vous créez doivent refléter les besoins de l'application. Par exemple, si vous voulez un enregistrement textuel de toutes les sorties de trace, créez un écouteur TextWriterTraceListener, qui écrit toutes les sorties dans un nouveau fichier texte quand il est activé. D'un autre côté, si vous voulez afficher la sortie uniquement pendant l'exécution de l'application, créez un écouteur ConsoleTraceListener, qui dirige toutes les sorties vers une fenêtre de console. EventLogTraceListener peut diriger la sortie de trace vers un journal d'événements. Pour plus d’informations, consultez Écouteurs de suivi.

Vous pouvez créer des écouteurs de suivi dans un fichier de configuration d’application ou dans votre code. Nous vous recommandons d'utiliser des fichiers de configuration d'application, car ils vous permettent d'ajouter, de modifier ou de supprimer des écouteurs de suivi sans avoir à modifier votre code.

Pour créer et utiliser un écouteur de suivi à l'aide d'un fichier de configuration

  1. Déclarez votre écouteur de suivi dans le fichier de configuration de votre application. Si l'écouteur que vous créez requiert d'autres objets, déclarez-les aussi. L'exemple suivant montre comment créer un écouteur appelé myListener, qui écrit dans le fichier texte TextWriterOutput.log.

    <configuration>
      <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="TextWriterOutput.log" />
            <remove name="Default" />
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
    
  2. Utilisez la classe Trace dans votre code pour écrire un message dans les écouteurs de suivi.

    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

Pour créer et utiliser un écouteur de suivi dans le code

  • Ajoutez l’écouteur de suivi à la collection Listeners et envoyez des informations de traçage aux écouteurs.

    Trace.Listeners.Add(New TextWriterTraceListener("TextWriterOutput.log", "myListener"))
    Trace.TraceInformation("Test message.")
    ' You must close or flush the trace to empty the output buffer.
    Trace.Flush()
    
    Trace.Listeners.Add(new TextWriterTraceListener("TextWriterOutput.log", "myListener"));
    Trace.TraceInformation("Test message.");
    // You must close or flush the trace to empty the output buffer.
    Trace.Flush();
    

    - ou -

  • Si vous ne voulez pas que votre écouteur reçoive la sortie de trace, ne l'ajoutez pas à la collection Listeners. Vous pouvez émettre la sortie via un écouteur indépendant de la collection Listeners en appelant les méthodes de sortie propres à l’écouteur. L'exemple suivant montre comment écrire une ligne dans un écouteur qui n'est pas dans la collection Listeners.

    Dim myListener As New TextWriterTraceListener("TextWriterOutput.log", "myListener")
    myListener.WriteLine("Test message.")
    ' You must close or flush the trace listener to empty the output buffer.
    myListener.Flush()
    
    TextWriterTraceListener myListener = new TextWriterTraceListener("TextWriterOutput.log", "myListener");
    myListener.WriteLine("Test message.");
    // You must close or flush the trace listener to empty the output buffer.
    myListener.Flush();
    

Voir aussi