Partager via


Utilisation des journaux des applications dans Visual Basic

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

Tout d'abord, la gravité du message est vérifiée à l'aide de 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 Fenêtres, 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 à partir de la propriété FullLogFileName de l'objet DefaultFileLogWriter.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 nom du fichier journal se présente sous la forme NomAssembly.log, où NomAssembly correspond au 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 nom du fichier journal se présente sous la forme NomAssembly-itération.log, où iteration correspond à un entier (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 (Visual Basic).

Configuration des paramètres du journal

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

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 NomApplication.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 sur 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 des 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 des 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

Référence

Microsoft.VisualBasic.Logging.Log

Concepts

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