Procédure pas à pas : filtrage de la sortie de My.Application.Log (Visual Basic)
Article
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
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 :
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.
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 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
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 :
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 à 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 à l'élément XML suivant :
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
Fermez l'application.
Remplacez la valeur de l'attribut value par « Information ».
Notes
Le paramètre de configuration DefaultSwitch contrôle uniquement My.Application.Log.Il ne modifie pas le comportement des classes .NET Framework Trace et 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
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 :
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 Explorateur de solutions. Cliquez sur Ouvrir.
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.
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 niveau supérieur.
Ajoutez cet élément à la section <sharedListeners> :