Partager via


Utilisation des journaux d’application dans Visual Basic

Les objets My.Application.Log et My.Log facilitent l’écriture des informations de journalisation et de traçabilité dans les journaux.

Journalisation des messages

Tout d’abord, la gravité du message est vérifiée avec la propriété Switch de la propriété TraceSource du journal. Par défaut, seuls les messages ayant une gravité de niveau « Informations » ou supérieur sont passés aux écouteurs de suivi, 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 la gravité du message est suffisamment élevée, 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 suivi du journal :

Diagramme illustrant l’appel de Mon journal.

Vous pouvez changer le comportement du journal et des écouteurs de suivi en modifiant le fichier de configuration de l’application. Le diagramme suivant montre la correspondance entre les parties du journal et le fichier de configuration.

Diagramme montrant ma configuration de journal.

Emplacement où les messages sont enregistrés

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

La sortie de débogage peut être consulté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ébogage , 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 à partir de la FullLogFileName propriété de l’objet DefaultFileLogWriter . Le format de ce chemin est le suivant :

BasePath\CompanyName\ProductName\ProductVersion

Une valeur BasePath classique est la suivante.

C :\Documents et paramètres\username\Données d’application

Les valeurs de CompanyName, ProductNameet ProductVersion proviennent des informations d’assembly de l’application. La forme du nom du fichier journal est AssemblyName.log, où AssemblyName est le nom de fichier de l’assembly sans l’extension. Si plusieurs fichiers journaux sont nécessaires, par exemple lorsque le journal d’origine n’est pas disponible lorsque l’application tente d’écrire dans le journal, le format du nom du fichier journal est AssemblyName-iteration.log, où iteration est un nombre positif Integer.

Vous pouvez remplacer 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 où My.Application.Log écrit des informations.

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 My.Application.Log.

Les sections de configuration de la journalisation se trouvent dans le nœud <system.diagnostics> du nœud <configuration> principal du fichier app.config. Les informations de la journalisation sont définies dans plusieurs nœuds :

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

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

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

Les exemples de nœuds <sources>, <switches>, et <sharedListeners> sont présentés dans le code suivant :

<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 le déploiement

Lorsque vous développez une application, ses paramètres de configuration sont stockés dans le fichier app.config, comme indiqué dans les exemples ci-dessus. Après avoir 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 une instance d’une classe pour la première fois, elle vérifie le fichier de configuration pour obtenir des informations sur l’objet. Pour l’objet Log , cela se produit la première fois que l’objet Log est accessible. 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 devrez peut-être redémarrer l’application pour que les modifications prennent effet.

Dans une application déployée, vous activez le code de trace en reconfigurant les objets switch avant le démarrage de votre application. En règle générale, cela implique d’activer et de désactiver les objets switch ou en modifiant les niveaux de suivi, puis en redémarrant votre application.

Considérations relatives à la sécurité

Tenez compte des éléments suivants lors de l’écriture de données dans le journal :

  • Évitez les fuites d’informations utilisateur. Vérifiez que votre application écrit seulement des informations approuvées dans le journal. Par exemple, il peut être acceptable que le journal d’application contienne des noms d’utilisateur, mais pas des mots de passe utilisateur.

  • Sécurisez les emplacements des journaux. Tout journal qui contient des informations potentiellement sensibles doit être stocké dans un emplacement sécurisé.

  • Évitez les informations trompeuses. En général, votre application doit valider toutes les données entrées par un utilisateur avant d’utiliser ces données. Cela inclut l’écriture de données dans le journal des applications.

  • Évitez le déni de service. Si votre application écrit trop d’informations dans le journal, elle peut remplir le journal ou rendre la recherche d’informations importantes difficiles.

Voir aussi