Partager via


Procédure pas à pas : filtrage de la sortie de My.Application.Log (Visual Basic)

Cette procédure pas à pas montre comment modifier le filtrage de journal par défaut de l'objet My.Application.Log, pour contrôler les informations passées de l'objet Log aux écouteurs et celles qui sont écrites par les écouteurs.Vous pouvez modifier le comportement de journalisation même après avoir généré l'application, parce que les informations de configuration sont stockées dans le fichier de configuration de l'application.

Mise en route

Chaque message écrit par le My.Application.Log a un niveau de gravité associé que les mécanismes de filtrage utilisent pour contrôler la sortie de journal.Cet exemple d'application utilise les méthodes My.Application.Log pour écrire plusieurs messages de journal avec différents niveaux de gravité.

Pour générer l'exemple d'application

  1. Ouvrez un nouveau projet d'application Windows Visual Basic.

  2. Ajoutez un bouton nommé Button1 à Form1.

  3. Dans le gestionnaire d'événements Click de Button1, ajoutez le code suivant :

  4. Exécutez l'application dans le débogueur.

  5. Appuyez sur Button1.

    L'application écrit les informations suivantes dans la sortie de débogage et le fichier journal d'applications.

    DefaultSource Information: 0 : In Button1_Click

    DefaultSource Error: 2 : Error in the application.

  6. Fermez l'application.

Pour plus d'informations sur la consultation de la fenêtre de sortie de débogage de l'application, consultez Sortie, fenêtre.Pour plus d'informations sur l'emplacement du fichier journal d'applications, consultez Procédure pas à pas : détermination de l'emplacement des informations My.Application.Log (Visual Basic).

[!REMARQUE]

Par défaut, l'application vide la sortie du fichier journal lorsque l'application se ferme.

Dans l'exemple ci-dessus, le deuxième appel à la méthode WriteEntry et l'appel à la méthode WriteException génère la sortie de journal, ce qui n'est pas le cas des premier et dernier appels à la méthode WriteEntry.Étant donné que les niveaux de gravité de WriteEntry et WriteException sont « Informations »" et « Erreur », ceux-ci sont autorisés par le filtrage de journal par défaut de l'objet My.Application.Log.Toutefois, les événements portant le niveau de gravité « Démarrage » et « Arrêt » ne peuvent pas générer une sortie de journal.

Filtrage des écouteurs pour All My.Application.Log

L'objet My.Application.Log utilise un SourceSwitch nommé DefaultSwitch pour contrôler les messages qu'il passe des méthodes WriteEntry et WriteException aux écouteurs de journalisation.Vous pouvez configurer DefaultSwitch dans le fichier de configuration de l'application en affectant sa valeur à l'une des valeurs d'énumération SourceLevels.Par défaut, sa valeur est « Information ».

Ce tableau affiche le niveau de gravité requis pour le journal pour écrire un message dans les écouteurs, avec un paramètre DefaultSwitch particulier.

Valeur DefaultSwitch

Gravité du message requis pour la sortie

Critical

Critical

Error

Critical ou Error

Warning

Critical, Error ou Warning

Information

Critical, Error, Warning ou Information

Verbose

Critical, Error, Warning, Information ou Verbose

ActivityTracing

Start, Stop, Suspend, Resume ou Transfer

All

Tous les messages sont autorisés.

Off

Tous les messages sont bloqués.

[!REMARQUE]

Les méthodes WriteEntry et WriteException ont chacune une surcharge qui ne spécifie pas de niveau de gravité.Le niveau de gravité implicite de la surcharge WriteEntry est « Information » et le niveau de gravité implicite de la surcharge WriteException est « Erreur ».

Ce tableau explique la sortie de journal affichée dans l'exemple précédent : avec le paramètre DefaultSwitch par défaut « Information », seul le deuxième appel à la méthode WriteEntry et l'appel à la méthode WriteException génèrent la sortie de journal.

Pour enregistrer uniquement les événements de traçage d'activités

  1. Cliquez avec le bouton droit sur app.config dans l'Explorateur de solutions et sélectionnez l'option Ouvrir.

    ou

    S'il n'y a aucun fichier app.config :

    1. Dans le menu Projet, choisissez Ajouter un nouvel élément.

    2. Dans la boîte de dialogue Ajouter un nouvel élément, choisissez Fichier de configuration de l'application.

    3. Cliquez sur Ajouter.

  2. Recherchez la section <switches> dans la section <system.diagnostics> qui se trouve dans la section <configuration> de niveau supérieur.

  3. Recherchez l'élément qui ajoute DefaultSwitch à la collection de commutateurs.Il doit ressembler à l'élément ci-après :

    <add name="DefaultSwitch" value="Information" />

  4. Remplacez la valeur de l'attribut value par « ActivityTracing ».

  5. Le contenu du fichier app.config doit être similaire à l'élément XML suivant :

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.diagnostics>
        <sources>
          <!-- This section configures My.Application.Log -->
          <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
              <add name="FileLog"/>
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultSwitch" value="ActivityTracing" />
        </switches>
        <sharedListeners>
          <add name="FileLog"
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener, 
                     Microsoft.VisualBasic, Version=8.0.0.0, 
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, 
                     processorArchitecture=MSIL" 
               initializeData="FileLogWriter"/>
        </sharedListeners>
      </system.diagnostics>
    </configuration>
  6. Exécutez l'application dans le débogueur.

  7. Appuyez sur Button1.

    L'application écrit les informations suivantes dans la sortie de débogage et le fichier journal d'applications :

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. Fermez l'application.

  9. Remplacez la valeur de l'attribut value par « Information ».

[!REMARQUE]

Le paramètre de configuration DefaultSwitch contrôle uniquement My.Application.Log.Il ne modifie pas le comportement des classes .NET Framework System.Diagnostics.Trace et System.Diagnostics.Debug.

Filtrage individuel des écouteurs My.Application.Log

L'exemple précédent indique comment modifier le filtrage pour toute la sortie My.Application.Log.Cet exemple montre comment filtrer un écouteur de journalisation.Par défaut, une application a deux écouteurs qui écrivent dans la sortie de débogage et le fichier journal d'applications.

Le fichier de configuration contrôle le comportement des écouteurs de journalisation en permettant à chacun d'entre eux d'avoir un filtre similaire à un commutateur pour My.Application.Log.Un écouteur de journalisation ne génère un message que si la gravité de ce dernier est acceptée par le DefaultSwitch du journal et le filtre de l'écouteur de journalisation.

Cet exemple montre comment configurer le filtrage d'un nouvel écouteur de débogage et l'ajouter à l'objet Log.L'écouteur de débogage par défaut doit être supprimé de l'objet Log ; ainsi, il apparaît clairement que les messages de débogage proviennent du nouvel écouteur de débogage.

Pour enregistrer uniquement les événements de traçage d'activités

  1. Cliquez avec le bouton droit sur app.config dans l'Explorateur de solutions et sélectionnez l'option Ouvrir.

    ou

    S'il n'y a aucun fichier app.config :

    1. Dans le menu Projet, choisissez Ajouter un nouvel élément.

    2. Dans la boîte de dialogue Ajouter un nouvel élément, choisissez Fichier de configuration de l'application.

    3. Cliquez sur Ajouter.

  2. Cliquez avec le bouton droit sur app.config dans Explorateur de solutions.Cliquez sur Ouvrir.

  3. Recherchez la section <listeners> dans la section <source> avec l'attribut name « DefaultSource », situé dans la section <sources>.La section <sources> figure dans la section <system.diagnostics> qui se trouve dans la section <configuration> de niveau supérieur.

  4. Ajoutez cet élément à la section <listeners> :

    <!-- Remove the default debug listener. -->
    <remove name="Default"/>
    <!-- Add a filterable debug listener. -->
    <add name="NewDefault"/>
  5. Recherchez la section <sharedListeners>, dans la section <system.diagnostics>, dans la section <configuration> de niveau supérieur.

  6. Ajoutez cet élément à la section <sharedListeners> :

    <add name="NewDefault" 
         type="System.Diagnostics.DefaultTraceListener, 
               System, Version=2.0.0.0, Culture=neutral, 
               PublicKeyToken=b77a5c561934e089, 
               processorArchitecture=MSIL">
        <filter type="System.Diagnostics.EventTypeFilter" 
                initializeData="Error" />
    </add>

    Le filtre EventTypeFilter considère l'une des valeurs d'énumération SourceLevels comme son attribut initializeData.

  7. Le contenu du fichier app.config doit être similaire à l'élément XML suivant :

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.diagnostics>
        <sources>
          <!-- This section configures My.Application.Log -->
          <source name="DefaultSource" switchName="DefaultSwitch">
            <listeners>
              <add name="FileLog"/>
              <!-- Remove the default debug listener. -->
              <remove name="Default"/>
              <!-- Add a filterable debug listener. -->
              <add name="NewDefault"/>
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultSwitch" value="Information" />
        </switches>
        <sharedListeners>
          <add name="FileLog"
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener, 
                     Microsoft.VisualBasic, Version=8.0.0.0, 
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, 
                     processorArchitecture=MSIL" 
               initializeData="FileLogWriter"/>
          <add name="NewDefault" 
               type="System.Diagnostics.DefaultTraceListener, 
                     System, Version=2.0.0.0, Culture=neutral, 
                     PublicKeyToken=b77a5c561934e089, 
                     processorArchitecture=MSIL">
            <filter type="System.Diagnostics.EventTypeFilter" 
                    initializeData="Error" />
          </add>
        </sharedListeners>
      </system.diagnostics>
    </configuration>
  8. Exécutez l'application dans le débogueur.

  9. Appuyez sur Button1.

    L'application écrit les informations suivantes dans le fichier journal d'applications :

    Default Information: 0 : In Button1_Click

    Default Error: 2 : Error in the application.

    L'application écrit moins d'information dans la sortie de débogage de l'application à cause du filtrage plus restrictif.

    Default Error 2 Error

  10. Fermez l'application.

Pour plus d'informations sur la modification des paramètres de journal après le déploiement, consultez Utilisation des journaux des applications dans Visual Basic.

Voir aussi

Tâches

Procédure pas à pas : détermination de l'emplacement des informations My.Application.Log (Visual Basic)

Procédure pas à pas : modification de l'emplacement des informations My.Application.Log (Visual Basic)

Procédure pas à pas : création d'écouteurs de journalisation personnalisés (Visual Basic)

Comment : écrire des messages de journal (Visual Basic)

Concepts

Commutateurs de traçage

Enregistrement d'informations provenant de l'application (Visual Basic)