Utilisation des journaux d'applications dans Visual Basic

Mise à jour : novembre 2007

Les objets My.Applicaton.Log et My.Log facilitent l'écriture des informations de journalisation et de traçage dans les journaux.

Mode d'enregistrement des messages

En premier lieu, la gravité du message est vérifiée à l'aide la propriété Switch de la propriété TraceSource du journal. Par défaut, seuls les messages contenant des « informations » de niveau grave et supérieur sont passés aux écouteurs de la trace, spécifiés dans la collection TraceListener du journal. Ensuite, chaque écouteur compare la gravité du message à la propriété Switch de l'écouteur. Si le niveau de gravité du message est assez élevé, l'écouteur écrit le message.

Le diagramme suivant montre comment un message écrit dans la méthode WriteEntry est passé aux méthodes WriteLine des écouteurs de la trace du journal :

Appel de My Log

Vous pouvez modifier le comportement du journal et des écouteurs de la trace en modifiant le fichier de configuration de l'application. Le diagramme suivant affiche la correspondance entre les parties du journal et le fichier de configuration.

Configuration de My Log

Emplacement d'enregistrement des messages

Si l'assembly n'a aucun fichier de configuration, les objets My.Application.Log et My.Log écrivent dans la sortie de débogage (via la classe DefaultTraceListener ) de l'application. De plus, l'objet My.Application.Log écrit dans le fichier journal de l'assembly (via la classe FileLogTraceListener ), tandis que l'objet My.Log écrit dans la sortie de la page Web ASP.NET (via la classe WebPageTraceListener ).

La sortie de débogage peut être affichée dans la fenêtre Sortie de Visual Studio lors de l'exécution de votre application en mode débogage. Pour ouvrir la fenêtre Sortie, cliquez sur l'élément de menu Déboguer, pointez sur Windows, puis cliquez sur Sortie. Dans la fenêtre Sortie, sélectionnez Déboguer dans la zone Afficher la sortie à partir de.

Par défaut, My.Application.Log écrit le fichier journal dans le chemin d'accès des données d'application de l'utilisateur. Vous pouvez obtenir le chemin d'accès dans la propriété FullLogFileName du DefaultFileLogWriter, propriété (My.Application.Log et My.Log). Le format du chemin d'accès est le suivant :

BasePath\CompanyName\ProductName\ProductVersion

Une valeur typique de BasePath se présente comme suit.

C:\Documents and Settings\username\Application Data

Les valeurs de CompanyName, ProductName, et ProductVersion proviennent des informations de l'assembly de l'application. Le formulaire du nom du fichier journal est AssemblyName.log, AssemblyName étant le nom de fichier de l'assembly sans l'extension. Si plusieurs fichiers journaux sont nécessaires, par exemple si le journal d'origine n'est pas disponible lorsque l'application essaie d'écrire dans le journal, le formulaire du nom du fichier journal est AssemblyName-iteration.log, iteration étant un Integer positif.

Vous pouvez substituer le comportement par défaut en ajoutant ou en modifiant les fichiers de configuration de l'ordinateur et de l'application. Pour plus d'informations, consultez Procédure pas à pas : modification de l'emplacement des informations My.Application.Log.

Configuration des paramètres du journal

L'objet Log a une implémentation par défaut qui fonctionne sans app.config, un fichier de configuration de l'application. Pour modifier les valeurs par défaut, vous devez ajouter un fichier de configuration dans les nouveaux paramètres. Pour plus d'informations, consultez Procédure pas à pas : filtrage de la sortie de My.Application.Log.

Les sections relatives à la configuration du journal figurent dans le nœud <system.diagnostics> du nœud <configuration> principal du fichier app.config. Les informations du journal sont définies dans plusieurs nœuds :

  • Les écouteurs de l'objet Log sont définis dans le nœud <sources> nommé DefaultSource.

  • Le filtre de gravité de l'objet Log est défini dans le nœud <switches> nommé DefaultSwitch.

  • Les écouteurs de journalisation sont définis dans le nœud <sharedListeners>.

Le code suivant illustre des exemples de nœuds <sources>, <switches> et <sharedListeners> :

<configuration>
  <system.diagnostics>
    <sources>
      <source name="DefaultSource" switchName="DefaultSwitch">
        <listeners>
          <add name="FileLog"/>
        </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"
      />
    </sharedListeners>
  </system.diagnostics>
</configuration>

Modification des paramètres du journal après déploiement

Lorsque vous développez une application, ses paramètres de configuration sont stockés dans le fichier app.config, comme le montre l'exemple ci-dessus. Une fois que vous avez déployé votre application, vous pouvez toujours configurer le journal en modifiant le fichier de configuration. Dans une application Windows, le nom de ce fichier est applicationName.exe .config et il doit résider dans le même dossier que le fichier exécutable. Pour une application Web, il s'agit du fichier Web.config associé au projet.

Lorsque votre application exécute le code qui crée pour la première fois une instance d'une classe, elle recherche dans le fichier de configuration des informations sur l'objet. Pour l'objet Log, cela arrive lors de l'accès à l'objet Log pour la première fois. Le système examine le fichier de configuration une seule fois pour un objet particulier (la première fois que votre application crée l'objet). Par conséquent, vous pouvez être amené à redémarrer l'application pour que les modifications prennent effet.

Dans une application déployée, vous activez le code de traçage en reconfigurant les objets commutateur avant le démarrage de votre application. Généralement, cela implique l'activation et la désactivation des objets commutateur ou le changement des niveaux de traçage, puis le redémarrage de votre application.

Considérations à propos de la sécurité

Prenez en compte les aspects suivants lorsque vous écrivez des données dans le journal :

  • Évitez les fuites d'informations utilisateur. Vérifiez que votre application n'écrit que des informations approuvées dans le journal. Par exemple, il peut être acceptable que le journal d'applications contienne des noms d'utilisateur et non des mots de passe utilisateur.

  • Sécurisez les emplacements des journaux. Les journaux qui contiennent des informations potentiellement sensibles doivent être stockés dans un emplacement sécurisé.

  • Évitez les informations équivoques. En général, votre application doit valider toutes les données entrées par un utilisateur avant de les utiliser. Il s'agit notamment de l'écriture des données dans le journal d'applications.

  • Évitez le déni de service. Si votre application écrit trop d'informations dans le journal, elle risque de remplir ce dernier et de compliquer la recherche d'informations importantes.

Voir aussi

Concepts

Enregistrement d'informations provenant de l'application

Référence

My.Application.Log, objet

My.Log, objet