Sdílet prostřednictvím


Návod: Filtrování výstupu My.Application.Log (Visual Basic)

Tento názorný postup ukazuje, jak změnit výchozí filtrování protokolu pro My.Application.Log objekt, aby bylo řídit, jaké informace se předávají z Log objektu naslouchacím procesům a jaké informace zapisují naslouchací procesy. Chování protokolování můžete změnit i po sestavení aplikace, protože informace o konfiguraci jsou uloženy v konfiguračním souboru aplikace.

Začínáme

Každá zpráva, která My.Application.Log zapisuje, má přidruženou úroveň závažnosti, která mechanismy filtrování používají k řízení výstupu protokolu. Tato ukázková aplikace používá My.Application.Log metody k zápisu několika zpráv protokolu s různými úrovněmi závažnosti.

Sestavení ukázkové aplikace

  1. Otevřete nový projekt aplikace pro Windows jazyka Visual Basic.

  2. Přidejte tlačítko s názvem Button1 do formuláře 1.

  3. Do obslužné rutiny Click události button1 přidejte následující kód:

    ' Activity tracing information
    My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start)
    
    ' Tracing information
    My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information)
    
    ' Create an exception to log.
    Dim ex As New ApplicationException
    ' Exception information
    My.Application.Log.WriteException(ex)
    
    ' Activity tracing information
    My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)
    
  4. Spusťte aplikaci v ladicím programu.

  5. Stiskněte tlačítko1.

    Aplikace zapíše následující informace do výstupu ladění aplikace a souboru protokolu.

    DefaultSource Information: 0 : In Button1_Click

    DefaultSource Error: 2 : Error in the application.

  6. Zavřete aplikaci.

    Informace o tom, jak zobrazit okno výstupu ladění aplikace, naleznete v části Okno výstupu. Informace o umístění souboru protokolu aplikace naleznete v části Návod: Určení umístění My.Application.Log zapisuje informace.

    Poznámka:

    Ve výchozím nastavení aplikace vyprázdní výstup souboru protokolu, když se aplikace zavře.

    V předchozím příkladu WriteEntry druhé volání metody a volání WriteException metody vytvoří výstup protokolu, zatímco první a poslední volání metody WriteEntry ne. Důvodem je to, že úrovně WriteEntry závažnosti a WriteException jsou "Informace" a "Chyba", z nichž obě jsou povoleny výchozím filtrováním My.Application.Log protokolu objektu. Události s úrovněmi závažnosti Start a Stop však brání v vytváření výstupu protokolu.

Filtrování pro všechny naslouchací procesy My.Application.Log

Objekt My.Application.Log používá pojmenovaný SourceSwitchDefaultSwitch k řízení, které zprávy předává z WriteEntry a WriteException metod do naslouchacího procesu protokolu. V konfiguračním souboru aplikace můžete nakonfigurovat DefaultSwitch nastavením jeho hodnoty na jednu z hodnot výčtu SourceLevels . Ve výchozím nastavení je jeho hodnota "Information".

Tato tabulka zobrazuje úroveň závažnosti potřebnou pro zápis zprávy do naslouchacích procesů v protokolu vzhledem k určitému DefaultSwitch nastavení.

Výchozí hodnota přepínače Závažnost zprávy požadovaná pro výstup
Critical Critical
Error Critical nebo Error
Warning Critical, Error nebo Warning
Information Critical, Error, Warningnebo Information
Verbose Critical, Error, Warning, Informationnebo Verbose
ActivityTracing Start, Stop, Suspend, Resumenebo Transfer
All Všechny zprávy jsou povolené.
Off Všechny zprávy jsou blokované.

Poznámka:

Každá WriteEntry metoda WriteException má přetížení, které nezadá úroveň závažnosti. Implicitní úroveň závažnosti pro přetížení je "Information" a implicitní úroveň závažnosti přetížení WriteEntryWriteException je "Error".

Tato tabulka vysvětluje výstup protokolu zobrazený v předchozím příkladu: s výchozím DefaultSwitch nastavením "Information", pouze druhé volání WriteEntry metody a volání WriteException metody vytvoří výstup protokolu.

Protokolování pouze událostí trasování aktivit

  1. V Průzkumník řešení klikněte pravým tlačítkem na app.config a vyberte Otevřít.

    nebo

    Pokud neexistuje žádný soubor app.config:

    1. V nabídce Projekt zvolte Přidat novou položku.

    2. V dialogovém okně Přidat novou položku zvolte Konfigurační soubor aplikace.

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

  2. <switches> Vyhledejte oddíl, který je v oddílu<system.diagnostics>, který je v oddílu nejvyšší úrovně<configuration>.

  3. Najděte prvek, který se přidá DefaultSwitch do kolekce přepínačů. Měl by vypadat podobně jako tento prvek:

    <add name="DefaultSwitch" value="Information" />

  4. Změňte hodnotu atributu value na ActivityTracing.

  5. Obsah souboru app.config by se měl podobat následujícímu kódu 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"/>
            </listeners>
          </source>
        </sources>
        <switches>
          <add name="DefaultSwitch" value="ActivityTracing" />
        </switches>
        <sharedListeners>
          <add name="FileLog"
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
                     Microsoft.VisualBasic, Version=8.0.0.0,
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
                     processorArchitecture=MSIL"
               initializeData="FileLogWriter"/>
        </sharedListeners>
      </system.diagnostics>
    </configuration>
    
  6. Spusťte aplikaci v ladicím programu.

  7. Stiskněte tlačítko1.

    Aplikace zapíše následující informace do výstupu ladění a souboru protokolu aplikace:

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. Zavřete aplikaci.

  9. Změňte hodnotu atributu value zpět na Informace.

    Poznámka:

    Ovládací DefaultSwitch prvky nastavení přepínače pouze My.Application.Log. Nemění chování rozhraní .NET System.Diagnostics.Trace a System.Diagnostics.Debug tříd.

Individuální filtrování pro naslouchací procesy My.Application.Log

Předchozí příklad ukazuje, jak změnit filtrování pro všechny My.Application.Log výstupy. Tento příklad ukazuje, jak filtrovat jednotlivé naslouchací procesy protokolu. Ve výchozím nastavení má aplikace dva naslouchací procesy, které zapisují do výstupu ladění aplikace a do souboru protokolu.

Konfigurační soubor řídí chování naslouchacích procesů protokolu tím, že každému z nich umožníte, aby měl filtr, který je podobný přepínači pro My.Application.Log. Naslouchací proces protokolu zobrazí zprávu pouze v případě, že je závažnost zprávy povolena filtrem naslouchacího DefaultSwitch procesu protokolu i filtrem naslouchacího procesu protokolu.

Tento příklad ukazuje, jak nakonfigurovat filtrování pro nový ladicí naslouchací proces a přidat ho do objektu Log . Výchozí naslouchací proces ladění by měl být z objektu Log odebrán, takže je jasné, že ladicí zprávy pocházejí z nového naslouchacího procesu ladění.

Protokolování pouze událostí trasování aktivit

  1. V Průzkumník řešení klikněte pravým tlačítkem na app.config a zvolte Otevřít.

    nebo

    Pokud neexistuje žádný soubor app.config:

    1. V nabídce Projekt zvolte Přidat novou položku.

    2. V dialogovém okně Přidat novou položku zvolte Konfigurační soubor aplikace.

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

  2. V Průzkumník řešení klikněte pravým tlačítkem na app.config. Zvolte Otevřít.

  3. <listeners> Vyhledejte oddíl v oddílu <source> s atributem name DefaultSource, který je pod oddílem<sources>. Oddíl <sources> je pod oddílem <system.diagnostics> v oddílu nejvyšší úrovně <configuration> .

  4. Přidejte tento prvek do oddílu <listeners> :

    <!-- Remove the default debug listener. -->
    <remove name="Default"/>
    <!-- Add a filterable debug listener. -->
    <add name="NewDefault"/>
    
  5. <sharedListeners> Vyhledejte oddíl v oddílu v oddílu <system.diagnostics> nejvyšší úrovně<configuration>.

  6. Přidejte tento element do tohoto <sharedListeners> oddílu:

    <add name="NewDefault"
         type="System.Diagnostics.DefaultTraceListener,
               System, Version=2.0.0.0, Culture=neutral,
               PublicKeyToken=b77a5c561934e089,
               processorArchitecture=MSIL">
        <filter type="System.Diagnostics.EventTypeFilter"
                initializeData="Error" />
    </add>
    

    Filtr EventTypeFilter jako atribut initializeData přebírá jednu z hodnot výčtuSourceLevels.

  7. Obsah souboru app.config by se měl podobat následujícímu kódu 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"/>
              <!-- Remove the default debug listener. -->
              <remove name="Default"/>
              <!-- Add a filterable debug listener. -->
              <add name="NewDefault"/>
            </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,
                     processorArchitecture=MSIL"
               initializeData="FileLogWriter"/>
          <add name="NewDefault"
               type="System.Diagnostics.DefaultTraceListener,
                     System, Version=2.0.0.0, Culture=neutral,
                     PublicKeyToken=b77a5c561934e089,
                     processorArchitecture=MSIL">
            <filter type="System.Diagnostics.EventTypeFilter"
                    initializeData="Error" />
          </add>
        </sharedListeners>
      </system.diagnostics>
    </configuration>
    
  8. Spusťte aplikaci v ladicím programu.

  9. Stiskněte tlačítko1.

    Aplikace zapíše do souboru protokolu aplikace následující informace:

    Default Information: 0 : In Button1_Click

    Default Error: 2 : Error in the application.

    Aplikace zapisuje méně informací do výstupu ladění aplikace z důvodu přísnějšího filtrování.

    Default Error 2 Error

  10. Zavřete aplikaci.

Další informace o změně nastavení protokolu po nasazení najdete v tématu Práce s protokoly aplikací.

Viz také