Delen via


Walkthrough: Wijzigen waar My.Application.Log informatie schrijft (Visual Basic)

U kunt de My.Application.Log en My.Log objecten gebruiken om informatie te registreren over gebeurtenissen die zich in uw toepassing voordoen. In dit scenario ziet u hoe u de standaardinstellingen overschrijft en ervoor zorgt dat het Log object naar andere logboeklisteners schrijft.

Vereisten

Het Log object kan informatie schrijven naar verschillende logboeklisteners. U moet de huidige configuratie van de logboeklisteners bepalen voordat u de configuraties wijzigt. Zie Walkthrough: Bepalen waar My.Application.Log informatie schrijft voor meer informatie.

U kunt het volgende bekijken : Gebeurtenisgegevens naar een tekstbestand schrijven of instructies: schrijven naar een gebeurtenislogboek van een toepassing.

Listeners toevoegen

  1. Klik met de rechtermuisknop op app.config in Solution Explorer en kies Openen.

    - of -

    Als er geen app.config-bestand is:

    1. Kies Nieuw item toevoegen in het menu Project.

    2. Selecteer toepassingsconfiguratiebestand in het dialoogvenster Nieuw item toevoegen.

    3. Klik op Toevoegen.

  2. Zoek de <listeners> sectie onder de <source> sectie met het name kenmerk DefaultSource in de <sources> sectie. De <sources> sectie bevindt zich in de <system.diagnostics> sectie, in de sectie op het hoogste niveau <configuration> .

  3. Voeg deze elementen toe aan die <listeners> sectie.

    <!-- 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. Verwijder opmerkingen bij de logboeklisteners die u berichten wilt ontvangen Log .

  5. Zoek de <sharedListeners> sectie in de <system.diagnostics> sectie op het hoogste niveau <configuration> .

  6. Voeg deze elementen toe aan die <sharedListeners> sectie.

    <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. De inhoud van het bestand app.config moet vergelijkbaar zijn met de volgende XML:

    <?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>
    

Een listener opnieuw configureren

  1. Zoek het element van <add> de listener uit de <sharedListeners> sectie.

  2. Het type kenmerk geeft de naam van het listenertype. Dit type moet overnemen van de TraceListener klasse. Gebruik de sterk benoemde typenaam om ervoor te zorgen dat het juiste type wordt gebruikt. Zie de sectie 'Een sterk benoemd type verwijzen' hieronder voor meer informatie.

    Sommige typen die u kunt gebruiken, zijn:

    Raadpleeg de documentatie van dat type voor informatie over waar andere typen logboeklisteners informatie schrijven.

  3. Wanneer de toepassing het log-listener-object maakt, wordt het initializeData kenmerk doorgegeven als de constructorparameter. De betekenis van het initializeData kenmerk is afhankelijk van de traceerlistener.

  4. Nadat de logboeklistener is gemaakt, stelt de toepassing de eigenschappen van de listener in. Deze eigenschappen worden gedefinieerd door de andere kenmerken in het <add> element. Zie de documentatie voor het type listener voor meer informatie over de eigenschappen voor een bepaalde listener.

Als u wilt verwijzen naar een sterk benoemd type

  1. Om ervoor te zorgen dat het juiste type wordt gebruikt voor uw logboeklistener, moet u de volledig gekwalificeerde typenaam en de sterk benoemde assemblynaam gebruiken. De syntaxis van een sterk benoemd type is als volgt:

    <typenaam, <assemblynaam>>, <versienummer>, <cultuur>, <sterke naam>

  2. In dit codevoorbeeld ziet u hoe u in dit geval de sterk benoemde typenaam voor een volledig gekwalificeerde type kunt bepalen: System.Diagnostics.FileLogTraceListener.

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

    Dit is de uitvoer en kan worden gebruikt om uniek te verwijzen naar een sterk benoemd type, zoals in de bovenstaande procedure 'Listeners toevoegen'.

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

Zie ook