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, car les informations de configuration sont stockées dans le fichier de configuration de l’application.
Mise en route
Chaque message écrit par 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
Ouvrez un nouveau projet d’application Windows Visual Basic.
Ajoutez un bouton nommé Button1 à Form1.
Dans le gestionnaire d’événements Click de Button1, ajoutez le code suivant :
' Activity tracing information My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start) ' Tracing information My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information) ' Create an exception to log. Dim ex As New ApplicationException ' Exception information My.Application.Log.WriteException(ex) ' Activity tracing information My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)
Exécutez l’application dans le débogueur.
Appuyez sur Button1.
L’application écrit les informations suivantes dans le fichier journal et la sortie de débogage de l’application.
DefaultSource Information: 0 : In Button1_Click
DefaultSource Error: 2 : Error in the application.
Fermez l'application.
Pour plus d’informations sur la consultation de la fenêtre de sortie de débogage de l’application, consultez Fenêtre Sortie. Pour plus d’informations sur l’emplacement du fichier journal de l’application, consultez Procédure pas à pas : détermination de l’emplacement des informations My.Application.Log.
Notes
Par défaut, l’application vide la sortie du fichier journal quand elle se ferme.
Dans l’exemple ci-dessus, le deuxième appel à la méthode WriteEntry et l’appel à la méthode WriteException génèrent 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é deWriteEntry
etWriteException
sont « Information » et « Erreur », ceux-ci sont autorisés par le filtrage de journal par défaut de l’objetMy.Application.Log
. Toutefois, les événements avec les niveaux de gravité « Démarrage » et « Arrêt » ne peuvent pas générer une sortie de journal.
Filtrage de tous les écouteurs My.Application.Log
L’objet My.Application.Log
utilise un SourceSwitch nommé DefaultSwitch
pour gérer 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 lui affectant 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 afin d’écrire un message pour les écouteurs, avec un paramètre DefaultSwitch
particulier.
Valeur DefaultSwitch | Gravité du message nécessaire 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 ouVerbose |
ActivityTracing |
Start , Stop , Suspend , Resume ouTransfer |
All |
Tous les messages sont autorisés. |
Off |
Tous les messages sont bloqués. |
Notes
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 la valeur « Information » du paramètre DefaultSwitch
par défaut, seuls 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
Cliquez avec le bouton droit sur app.config dans l’Explorateur de solutions et sélectionnez Ouvrir.
-ou-
S’il n’existe pas de fichier app.config :
Dans le menu Projet , choisissez Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément , choisissez Fichier de configuration de l’application.
Cliquez sur Add.
Recherchez la section
<switches>
dans la section<system.diagnostics>
, qui se trouve dans la section<configuration>
de niveau supérieur.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" />
Remplacez la valeur de l’attribut
value
par « ActivityTracing ».Le contenu du fichier app.config doit être similaire au code 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>
Exécutez l’application dans le débogueur.
Appuyez sur Button1.
L’application écrit les informations suivantes dans le fichier journal et la sortie de débogage de l’application :
DefaultSource Start: 4 : Entering Button1_Click
DefaultSource Stop: 5 : Leaving Button1_Click
Fermez l'application.
Rétablissez la valeur « Information » de l’attribut
value
.Notes
Le paramètre de commutateur
DefaultSwitch
contrôle uniquementMy.Application.Log
. Il ne modifie pas le comportement des classes .NET System.Diagnostics.Trace et System.Diagnostics.Debug.
Filtrage individuel des écouteurs My.Application.Log
L’exemple précédent indique comment modifier le filtrage de 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 le fichier journal et la sortie de débogage de l’application.
Le fichier de configuration contrôle le comportement des écouteurs de journalisation en permettant à chacun d’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
Cliquez avec le bouton droit sur app.config dans l’Explorateur de solutions et sélectionnez Ouvrir.
-ou-
S’il n’existe pas de fichier app.config :
Dans le menu Projet , choisissez Ajouter un nouvel élément.
Dans la boîte de dialogue Ajouter un nouvel élément , choisissez Fichier de configuration de l’application.
Cliquez sur Add.
Cliquez avec le bouton droit sur app.config dans l’Explorateur de solutions. Choisissez Ouvrir.
Recherchez la section
<listeners>
, dans la section<source>
avec l’attributname
« DefaultSource » sous la section<sources>
. La section<sources>
est sous la section<system.diagnostics>
, dans la section<configuration>
de niveau supérieur.Ajoutez cet élément à la section
<listeners>
:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>
Recherchez la section
<sharedListeners>
dans la section<system.diagnostics>
, dans la section<configuration>
de plus haut niveau.Ajoutez cet élément à cette 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
.Le contenu du fichier app.config doit être similaire au code 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>
Exécutez l’application dans le débogueur.
Appuyez sur Button1.
L’application écrit les informations suivantes dans le fichier journal de l’application :
Default Information: 0 : In Button1_Click
Default Error: 2 : Error in the application.
L’application écrit moins d’informations dans la sortie de débogage de l’application à cause du filtrage plus restrictif.
Default Error 2 Error
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.
Voir aussi
- Procédure pas à pas : détermination de l’emplacement des informations My.Application.Log
- Procédure pas à pas : modification de l’emplacement des informations My.Application.Log
- Procédure pas à pas : création d’écouteurs de journalisation personnalisés
- Procédure : écrire des messages de journal
- Commutateurs de traçage
- Enregistrement d'informations provenant de l'application