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 objekt a řídit, jaké informace se předají z objektu naslouchacím objektům a jaké informace zapisují My.Application.Log Log naslouchací objekty. Chování protokolování můžete změnit i po sestavení aplikace, protože informace o konfiguraci jsou uložené v konfiguračním souboru aplikace.

Začínáme

Každá zpráva, která zapisuje, má přidruženou úroveň závažnosti, kterou používají My.Application.Log filtrovací mechanismy k řízení výstupu protokolu. Tato ukázková aplikace My.Application.Log používá 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 Visual Basic Windows aplikace.

  2. Přidejte tlačítko s názvem Button1 do Form1.

  3. Do obslužné Click rutiny události pro 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ýstupního výstupu a souboru protokolu aplikace.

    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, najdete v okno Výstup. Informace o umístění souboru protokolu aplikace najdete v návodu: Určení místa, kam soubor 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říkladu výše druhé volání metody a volání metody vytvoří výstup protokolu, zatímco první a poslední volání WriteEntry WriteException metody WriteEntry nikoli. Je to proto, že úrovně závažnosti a jsou WriteEntry WriteException "Informace" a "Chyba", které jsou povoleny výchozím filtrováním protokolu My.Application.Log objektu. Událostem s úrovněmi závažnosti Start a Stop se však zabrání ve vytváření výstupu protokolu.

Filtrování všech naslouchacích služeb My.Application.Log

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

Tato tabulka ukazuje úroveň závažnosti, kterou protokol vyžaduje k zápisu zprávy do naslouchacích služeb s konkrétním DefaultSwitch nastavením.

Hodnota DefaultSwitch Závažnost zprávy požadovaná pro výstup
Critical Critical
Error Critical nebo Error
Warning Critical, Error nebo Warning
Information Critical, Error Warning , nebo Information
Verbose Critical, Error Warning , , Information nebo Verbose
ActivityTracing Start, Stop Suspend , , Resume nebo Transfer
All Všechny zprávy jsou povolené.
Off Všechny zprávy jsou blokované.

Poznámka

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

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

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

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

    -nebo-

    Pokud neexistuje žádný app.config soubor:

    1. V nabídce Project vyberte Přidat novou položku.

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

    3. Klikněte na Přidat.

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

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

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

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

  5. Obsah souboru app.config by měl být podobný následujícímu souboru 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ýstupního výstupu a souboru protokolu aplikace:

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. Zavřete aplikaci.

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

    Poznámka

    Nastavení DefaultSwitch přepínače řídí pouze My.Application.Log . Nezmění chování rozhraní .NET a System.Diagnostics.Trace System.Diagnostics.Debug tříd.

Individuální filtrování naslouchacích služeb 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í proces protokolu. Ve výchozím nastavení má aplikace dva naslouchací objekty, které zapisování do výstupu ladění aplikace a souboru protokolu.

Konfigurační soubor řídí chování naslouchacích služeb protokolu tím, že každému z nich umožňuje mít filtr, který se podobá přepínači pro My.Application.Log . Naslouchací proces protokolu zobrazí zprávu pouze v případě, že filtr protokolu i protokolového naslouchacího procesu umožní závažnost DefaultSwitch zprávy.

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

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

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

    -or-

    Pokud neexistuje žádný app.config soubor:

    1. V nabídce Project vyberte Přidat novou položku.

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

    3. Klikněte na Přidat.

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

  3. Vyhledejte <listeners> oddíl v části s <source> name atributem DefaultSource, který je v <sources> části . Oddíl se nachází v části nejvyšší <sources> <system.diagnostics> <configuration> úrovně.

  4. Do oddílu přidejte <listeners> tento element:

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

  6. Do této části přidejte <sharedListeners> tento element:

    <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 přebírá jednu z hodnot SourceLevels výčtu jako svůj initializeData atribut.

  7. Obsah souboru app.config by měl být podobný následujícímu souboru 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 zapíše do výstupu ladění aplikace méně informací kvůli přísnějšímu 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é