Sdílet prostřednictvím


Podrobné pokyny: Změna, kde My.Application.Log zapisuje informace (Visual Basic)

Můžete použít objekty My.Application.Log a My.Log k protokolování informací o událostech, ke kterým dochází v aplikaci. Tento návod ukazuje, jak přepsat výchozí nastavení a donutit Log objekt zapisovat do jiných protokolových posluchačů.

Požadavky

Objekt Log může zapisovat informace do několika protokolových posluchačů. Potřebujete zjistit aktuální konfiguraci protokolového posluchače před změnou jeho konfigurace. Další informace naleznete v tématu Podrobné pokyny: Určení, kde My.Application.Log zapisuje informace (Visual Basic).

Můžete chtít zkontrolovat Postupy: Zapsat informace o události do textového souboru (Visual Basic) nebo Postupy: Zápis do protokolu událostí aplikace (Visual Basic).

Chcete-li přidat posluchače

  1. Klikněte pravým tlačítkem myši na soubor app.config v Průzkumníku řešení a potom klikněte na tlačítko Otevřít.

    -nebo-

    Pokud neexistuje soubor app.config:

    1. V nabídce Projekt klikněte na příkaz Přidat novou položku.

    2. Z dialogového rámečku Přidat novou položku, vyberte Aplikační konfigurační soubor.

    3. Klepněte na tlačítko Přidat.

  2. Nalezněte oddíl <listeners>, pod sekci <source> s atributem name nastaveným na "DefaultSource", který je umístěný v sekci <sources>. Sekce <sources> je umístěna v sekci <system.diagnostics>, která je v nejvyšší úrovni oddílu <configuration>.

  3. Přidání těchto prvků, <listeners> oddílu.

    <!-- 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. Odkomentujte protokolové posluchače, kteří mají přijímat Log zprávy.

  5. Nalezněte sekci <sharedListeners> v sekci <system.diagnostics>, které je v nejvyšší úroveň oddílu <configuration>.

  6. Přidejte tyto prvky do oddílu <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. Obsah souboru app.config by měl být podobný následujícímu 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>
    

Chcete-li překonfigurovat posluchače

  1. Nalezněte element <add> posluchačů z oddílu <sharedListeners>.

  2. Atribut type poskytuje název typu posluchače. Tento typ musí dědit z třídy TraceListener. Použijte silně pojmenovaný typový název k zajištění použití správného typu. Další informace naleznete v tématu "Chcete-li odkazovat na silně pojmenované typy" níže.

    Některé typy, které můžete použít, jsou:

    Informace o tom, kde zapisují informace další typy protokolových posluchačů naleznete v dokumentaci daného typu.

  3. Když aplikace vytvoří objekt protokolového posluchače, předá atribut initializeData jako parametr konstruktoru. Význam atributu initializeData závisí na posluchači trasování.

  4. Po vytvoření protokolového posluchače, aplikace nastaví vlastnosti posluchačů. Tyto vlastnosti jsou definovány jinými atributy v elementu <add>. Další informace o vlastnostech pro konkrétní posluchače naleznete v dokumentaci pro typ daného posluchače.

Chcete-li odkazovat na silně pojmenované typy

  1. Chcete-li zajistit, že je pro vaši komponentu použit správný typ protokolového posluchače, ujistěte se, že používáte plně kvalifikovaný typový název a silně pojmenovaný název sestavení. Syntaxe silně pojmenovaného typu je následující.

    <název typu>, <název sestavení>, <číslo verze>, <kultury>, <silný název>

  2. Tento příklad kódu ukazuje, jak určit název silně pojmenovaného typu pro plně kvalifikovaný typ — v tomto případě "Systen.Diagnostics.FileLogTraceListener".

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

    To je výstup a lze jej použít jako jednoznačný odkaz a silně pojmenovaný typ, stejně jak je použit v proceduře "Chcete-li přidat posluchače" nahoře.

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

Viz také

Úkoly

Postupy: Zapsat informace o události do textového souboru (Visual Basic)

Postupy: Zápis do protokolu událostí aplikace (Visual Basic)

Odkaz

Microsoft.VisualBasic.Logging.Log

TraceListener

Microsoft.VisualBasic.Logging.FileLogTraceListener

System.Diagnostics.EventLogTraceListener