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

Vous pouvez utiliser les objets My.Application.Log et My.Log pour enregistrer des informations sur les événements qui se produisent dans votre application. Cette procédure pas à pas indique comment substituer les paramètres par défaut pour que l'objet Log écrive dans d'autres écouteurs de journalisation.

Composants requis

L'objet Log peut écrire des informations dans plusieurs écouteurs de journalisation. Vous devez déterminer la configuration actuelle des écouteurs de journalisation avant de modifier les configurations. Pour plus d'informations, consultez Procédure pas à pas : détermination de l'emplacement des informations My.Application.Log (Visual Basic).

Vous pouvez examiner Comment : écrire des informations sur des événements dans un fichier texte (Visual Basic) ou Comment : écrire dans le journal des événements de l'application (Visual Basic).

Pour ajouter des écouteurs

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

    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. Localisez la section <listeners>, sous la section <source> avec l'attribut name "DefaultSource", dans la section <sources>. La section <sources> est dans la section <system.diagnostics>, dans la section <configuration> de niveau supérieur.

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

    <!-- 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 des écouteurs de journalisation spécifiant que vous souhaitez recevoir des 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 à la section <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" />
    
  7. Le contenu du fichier app.config doit être similaire à l'élément 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 indique le nom du type d'écouteur. Ce type doit hériter de la classe TraceListener. Utilisez le type qui porte un nom fort pour garantir l'utilisation du type approprié. Pour plus d'informations, consultez la section « Pour référencer un type portant un nom fort » ci-dessous.

    Les types que vous pouvez utiliser sont entre autres les suivants :

    Pour plus d'informations sur l'emplacement où d'autres types d'écouteurs de journalisation écrivent des informations, consultez leur documentation.

  3. Lorsque l'application crée l'objet écouteur de journalisation, l'attribut initializeData devient le paramètre de constructeur. La signification de l'attribut initializeData dépend de l'écouteur de la trace.

  4. Une fois qu'elle a créé l'écouteur de journalisation, l'application définit les propriétés de l'écouteur. Ces propriétés sont définies par les autres attributs dans l'élément <add>. Pour plus d'informations sur les propriétés d'un écouteur particulier, consultez la documentation de ce type d'écouteur.

Pour référencer un type portant un nom fort

  1. Pour garantir l'utilisation du type correct pour votre écouteur de journalisation, vérifiez que vous utilisez le nom de type qualifié complet et le nom d'assemblage portant un nom fort. La syntaxe d'un type portant un nom fort se présente comme suit :

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

  2. Cet exemple de code indique comment déterminer le nom de type portant un nom fort pour un type qualifié complet - "System.Diagnostics.FileLogTraceListener" dans ce cas.

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

    Il s'agit de la sortie, et elle peut être utilisée pour référencer uniquement un type portant un 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

Tâches

Comment : écrire des informations sur des événements dans un fichier texte (Visual Basic)

Comment : écrire dans le journal des événements de l'application (Visual Basic)

Référence

Log

TraceListener

FileLogTraceListener

EventLogTraceListener