Dela via


Genomgång: Ändra var my.application.log skriver information (Visual Basic)

Du kan använda objekten My.Application.Log och My.Log för att logga information om händelser som inträffar i ditt program. Den här genomgången visar hur du åsidosätter standardinställningarna och får Log objektet att skriva till andra logglyssnare.

Förutsättningar

Objektet Log kan skriva information till flera logglyssnare. Du måste fastställa logglyssnarnas aktuella konfiguration innan du ändrar konfigurationerna. Mer information finns i Genomgång: Fastställa var my.application.log skriver information.

Du kanske vill granska Så här skriver du händelseinformation till en textfil eller Så här skriver du till en programhändelselogg.

Lägga till lyssnare

  1. Högerklicka på app.config i Solution Explorer och välj Öppna.

    - eller -

    Om det inte finns någon app.config-fil:

    1. På Projekt-menyn väljer du Lägg till nytt objekt.

    2. I dialogrutan Lägg till nytt objekt väljer du Programkonfigurationsfil.

    3. Klicka på Lägg till.

  2. <listeners> Leta upp avsnittet under avsnittet <source> med name attributet "DefaultSource" i avsnittet <sources> . Avsnittet <sources> finns i avsnittet <system.diagnostics> på den översta nivån <configuration> .

  3. Lägg till dessa element i det <listeners> avsnittet.

    <!-- 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. Avkommentar de logglyssnare som du vill ta emot Log meddelanden.

  5. Leta upp avsnittet <sharedListeners> i avsnittet <system.diagnostics> i avsnittet på den översta nivån <configuration> .

  6. Lägg till dessa element i det <sharedListeners> avsnittet.

    <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. Innehållet i filen app.config bör likna följande 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>
    

Konfigurera om en lyssnare

  1. Leta upp lyssnarens <add> element från avsnittet <sharedListeners> .

  2. Attributet type ger namnet på lyssnartypen. Den här typen måste ärva från TraceListener klassen. Använd det starkt namngivna typnamnet för att säkerställa att rätt typ används. Mer information finns i avsnittet "Referera till en starkt namngiven typ" nedan.

    Några typer som du kan använda är:

    Information om var andra typer av logglyssnare skriver information finns i den typens dokumentation.

  3. När programmet skapar logglyssningsobjektet skickas initializeData attributet som konstruktorparameter. Attributets initializeData betydelse beror på spårningslyssnaren.

  4. När du har skapat logglyssnaren anger programmet lyssnarens egenskaper. De här egenskaperna definieras av de andra attributen i elementet <add> . Mer information om egenskaperna för en viss lyssnare finns i dokumentationen för den lyssnarens typ.

Referera till en starkt namngiven typ

  1. Se till att rätt typ används för logglyssnaren genom att använda det fullständigt kvalificerade typnamnet och det starkt namngivna sammansättningsnamnet. Syntaxen för en starkt namngiven typ är följande:

    <typnamn>, <sammansättningsnamn>, <versionsnummer>, <kultur>, <starkt namn>

  2. Det här kodexemplet visar hur du fastställer det starkt namngivna typnamnet för en fullständigt kvalificerad typ – "System.Diagnostics.FileLogTraceListener" i det här fallet.

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

    Det här är utdata och kan användas för att unikt referera till en starkt namngiven typ, som i proceduren "Att lägga till lyssnare" ovan.

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

Se även