Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
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.
Pour commencer
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 des My.Application.Log méthodes pour écrire plusieurs messages de journal avec différents niveaux de gravité.
Pour construire 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 pour 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_ClickDefaultSource Error: 2 : Error in the application.Fermez l’application.
Pour plus d’informations sur la façon d’afficher la fenêtre de sortie de débogage de l’application, consultez Fenêtre Sortie. Pour des informations sur l’emplacement du fichier journal de l’application, consultez Guide : Déterminer où My.Application.Log écrit les informations.
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 produisent une sortie de journal, tandis que les premiers et derniers appels à la méthode
WriteEntryne le font pas. Étant donné que les niveaux de gravité deWriteEntryetWriteExceptionsont « 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 pour tous les listeners de 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 définissant sa valeur sur 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é des messages requise pour la sortie |
|---|---|
Critical |
Critical |
Error |
Critical ou Error |
Warning |
Critical, Error ou Warning |
Information |
Critical, Error, Warningou Information |
Verbose |
Critical, Error, Warning, Informationou Verbose |
ActivityTracing |
Start, Stop, Suspend, Resumeou 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 WriteEntry surcharge est « Informations », et le niveau de gravité implicite de la WriteException surcharge 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 journaliser uniquement les événements de suivi d’activité
Cliquez avec le bouton droit sur app.config dans l’Explorateur de solutions , puis sélectionnez Ouvrir.
- ou -
S’il n’existe aucun 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 Ajouter.
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 à cet élément :<add name="DefaultSwitch" value="Information" />Remplacez la valeur de l’attribut
valuepar « 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_ClickDefaultSource Stop: 5 : Leaving Button1_ClickFermez l’application.
Remplacez la valeur de l’attribut
valuepar « Information ».Remarque
Le
DefaultSwitchparamètre de commutateur contrôle uniquementMy.Application.Log. Elle ne modifie pas le comportement des classes .NET System.Diagnostics.Trace et System.Diagnostics.Debug.
Filtrage individuel pour les écouteurs My.Application.Log
L’exemple précédent montre comment modifier le filtrage de toutes les My.Application.Log sorties. 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 logs en permettant à chacun d’avoir un filtre, qui est semblable à un commutateur pour My.Application.Log. Un écouteur de journal génère un message uniquement si la gravité du message est autorisée à la fois par le filtre du journal DefaultSwitch et celui de l’écouteur de journal.
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 . Il est donc clair que les messages de débogage proviennent du nouvel écouteur de débogage.
Pour journaliser uniquement les événements de suivi d’activité
Cliquez avec le bouton droit sur app.config dans l’Explorateur de solutions , puis choisissez Ouvrir.
- ou -
S’il n’existe aucun 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 Ajouter.
Cliquez avec le bouton droit sur app.config dans l’Explorateur de solutions. Choisissez Ouvrir.
Recherchez la
<listeners>section, dans la<source>section avec l’attributname« DefaultSource », qui se trouve sous la<sources>section. La<sources>section se trouve sous la<system.diagnostics>section, dans la section de niveau<configuration>supérieur.Ajoutez cet élément à la
<listeners>section :<!-- 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 niveau supérieur.Ajoutez cet élément à cette
<sharedListeners>section :<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 EventTypeFilter filtre prend l’une des valeurs d’énumération SourceLevels comme 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_ClickDefault Error: 2 : Error in the application.En raison d'un filtrage plus restrictif, l'application écrit moins d'informations dans la sortie de débogage de l'application.
Default Error 2 ErrorFermez l’application.
Pour plus d’informations sur la modification des paramètres de journal après le déploiement, consultez Utilisation des journaux d’activité des applications.
Voir aussi
- Procédure pas à pas : détermination de l’emplacement où My.Application.Log écrit des informations
- Procédure pas à pas : modification de l’emplacement où My.Application.Log écrit des informations
- Guide : création de listeners de log personnalisés
- Guide pratique pour écrire des messages de journal
- Commutateurs de trace
- Enregistrement d’informations provenant de l’application