Partager via


Procédure pas à pas : modification de l’emplacement où My.Application.Log écrit des informations (Visual Basic)

Vous pouvez utiliser les objets My.Application.Log et My.Log pour consigner des informations sur les événements qui se produisent dans votre application. Cette procédure pas à pas montre comment remplacer les paramètres par défaut et faire en sorte que l’objet Log écrive dans d’autres écouteurs de journalisation.

Conditions préalables

L’objet Log peut écrire des informations dans plusieurs écouteurs de journalisation. Vous devez établir la configuration actuelle des auditeurs de journal avant de modifier les paramètres. Pour plus d’informations, consultez Procédure pas à pas : détermination de l’emplacement où My.Application.Log écrit des informations.

Vous pouvez consulter la procédure : écrire des informations d’événement dans un fichier texte ou comment : écrire dans un journal des événements d’application.

Pour ajouter des écouteurs

  1. 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 :

    1. Dans le menu Projet , choisissez Ajouter un nouvel élément.

    2. Dans la boîte de dialogue Ajouter un nouvel élément , sélectionnez Fichier de configuration de l’application.

    3. Cliquez sur Ajouter.

  2. Recherchez la <listeners> section, sous la <source> section avec l’attribut name « DefaultSource », dans la <sources> section. La <sources> section se trouve dans la <system.diagnostics> section, dans la section de niveau <configuration> supérieur.

  3. Ajoutez ces éléments à cette <listeners> section.

    <!-- Uncomment to connect the application file log. -->
    <!-- <add name="FileLog" /> -->
    <!-- Uncomment to connect the event log. -->
    <!-- <add name="EventLog" /> -->
    <!-- Uncomment to connect the event log. -->
    <!-- <add name="Delimited" /> -->
    <!-- Uncomment to connect the XML log. -->
    <!-- <add name="XmlWriter" /> -->
    <!-- Uncomment to connect the console log. -->
    <!-- <add name="Console" /> -->
    
  4. Supprimez les marques de commentaire pour les écouteurs de journalisation qui doivent recevoir les messages Log .

  5. Recherchez la section <sharedListeners>, dans la section <system.diagnostics>, dans la section <configuration> de niveau supérieur.

  6. Ajoutez ces éléments à cette <sharedListeners> section.

    <add name="FileLog"
         type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
               Microsoft.VisualBasic, Version=8.0.0.0,
               Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         initializeData="FileLogWriter" />
    <add name="EventLog"
         type="System.Diagnostics.EventLogTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="sample application"/>
    <add name="Delimited"
         type="System.Diagnostics.DelimitedListTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="c:\temp\sampleDelimitedFile.txt"
         traceOutputOptions="DateTime" />
    <add name="XmlWriter"
         type="System.Diagnostics.XmlWriterTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="c:\temp\sampleLogFile.xml" />
    <add name="Console"
         type="System.Diagnostics.ConsoleTraceListener,
               System, Version=2.0.0.0,
               Culture=neutral, PublicKeyToken=b77a5c561934e089"
         initializeData="true" />
    
  7. 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"/>
              <!-- Uncomment to connect the application file log. -->
              <!-- <add name="FileLog" /> -->
              <!-- Uncomment to connect the event log. -->
              <!-- <add name="EventLog" /> -->
              <!-- Uncomment to connect the event log. -->
              <!-- <add name="Delimited" /> -->
              <!-- Uncomment to connect the XML log. -->
              <!-- <add name="XmlWriter" /> -->
              <!-- Uncomment to connect the console log. -->
              <!-- <add name="Console" /> -->
            </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"
               initializeData="FileLogWriter" />
          <add name="EventLog"
               type="System.Diagnostics.EventLogTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="sample application"/>
          <add name="Delimited"
               type="System.Diagnostics.DelimitedListTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleDelimitedFile.txt"
               traceOutputOptions="DateTime" />
          <add name="XmlWriter"
               type="System.Diagnostics.XmlWriterTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="c:\temp\sampleLogFile.xml" />
          <add name="Console"
               type="System.Diagnostics.ConsoleTraceListener,
                     System, Version=2.0.0.0,
                     Culture=neutral, PublicKeyToken=b77a5c561934e089"
               initializeData="true" />
        </sharedListeners>
      </system.diagnostics>
    </configuration>
    

Pour reconfigurer un écouteur

  1. Recherchez l’élément <add> de l’écouteur dans la section <sharedListeners> .

  2. L’attribut type donne le nom du type d’écouteur. Ce type doit hériter de la TraceListener classe. Utilisez le nom de type avec un nom fort pour être sûr que le type correct est utilisé. Pour plus d’informations, consultez la section « Pour référencer un type fortement nommé » ci-dessous.

    Voici quelques types que vous pouvez utiliser :

    Pour plus d’informations sur les emplacements où d’autres types d’écouteurs de journalisation écrivent les informations, consultez la documentation de ce type.

  3. Lorsque l’application crée l’objet log-listener, elle transmet l’attribut initializeData en tant que paramètre de constructeur. La signification de l’attribut initializeData dépend de l’écouteur de trace.

  4. Après avoir créé l’écouteur de journal, l’application définit les propriétés de l’écouteur. Ces propriétés sont définies par les autres attributs de l’élément <add> . Pour plus d’informations sur les propriétés d’un écouteur particulier, consultez la documentation relative au type de cet écouteur.

Pour référencer un type fortement nommé

  1. Pour être sûr que type correct est utilisé pour votre écouteur de journalisation, vérifiez que vous utilisez le nom de type qualifié complet et le nom d’assembly avec nom fort. La syntaxe d’un type fortement nommé est la suivante :

    <nom de type>, <nom d'assembly>, <numéro de version>, <culture>, <nom fort>

  2. Cet exemple de code montre comment déterminer le nom de type avec nom fort pour un type qualifié complet, dans ce cas « System.Diagnostics.FileLogTraceListener ».

    Public Sub DisplayStrongName()
        Dim t As Type = GetType(Logging.FileLogTraceListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    Voici la sortie. Il peut être utilisé pour faire référence de façon univoque à un type avec nom fort, comme dans la procédure « Pour ajouter des écouteurs » ci-dessus.

    Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

Voir aussi