Sdílet prostřednictvím


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

Tento návod ukazuje, jak změnit výchozí filtrování protokolování v My.Application.Log objektu, z důvodu kontroly jaké informace jsou předány z objektu Log do posluchače a jaké informace jsou zapsány posluchači. Můžete změnit chování protokolování i po vytvoření aplikace, protože konfigurační informace jsou uloženy v konfiguračním souboru aplikace.

Začínáme

Každá zpráva, které je zapsána pomocí My.Application.Log má přidruženou úroveň závažnosti, kterou filtrovací mechanismy používají k řízení výstupu protokolování. Tato ukázková aplikace používá metodu My.Application.Log k zapsání několik protokolových zpráv s různou úrovní závažnosti.

Chcete-li vytvořit ukázkovou aplikaci

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

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

  3. V obslužné rutině události Click pro Button1, přidejte následující kód:

  4. Spusťte aplikace v ladicím módu.

  5. Stiskněte Button1.

    Aplikace zapíše následující informace do aplikačního výstupu ladění a protokolového souboru .

    DefaultSource Information: 0 : In Button1_Click

    DefaultSource Error: 2 : Error in the application.

  6. Ukončete aplikaci.

Informace o tom, jak zobrazit výstupní okno ladění aplikace, naleznete v tématu Okno výstupu.Informace o umístění protokolového souboru aplikace, naleznete v tématu Návod: Zjištění, kam objekt My.Application.Log zapisuje informace (Visual Basic).

[!POZNÁMKA]

V výchozím nastavení, aplikace po ukončení vyprázdní výstupní protokolový soubor.

Ve výše uvedeném příkladu, druhé volání metody WriteEntry a volání metody WriteException vytvoří protokolový výstup, zatím co první volání a poslední volání metody WriteEntry ne. Důvodem je, že úrovně závažnosti WriteEntry a WriteException jsou "Informace" a "Chyba", obě dvě jsou v základní nastavení filtrování protokolování v objektu My.Application.Log povoleny. Události s úrovní závažnosti "Start" a "Stop" však nebudou moci vyrobit protokolový výstup.

Filtrování pro všechny posluchači My.Application.Log

Objekt My.Application.Log používá SourceSwitch s názvem DefaultSwitch ke kontrole, kterou zprávu předá z metod WriteEntry a WriteException do protokolových posluchačů. Můžete nakonfigurovat DefaultSwitch v konfiguračním soubor aplikace tak, že jej nastavíte na jednu z hodnotu výčtu SourceLevels. Ve výchozím nastavení je jeho hodnota "Information".

V této tabulce jsou uvedeny úrovně závažnosti, které způsobí zapsaní zprávy z protokolu do posluchače, záležící zejména na nastavení DefaultSwitch.

Hodnota DefaultSwitch

Závažnost zprávy požadovaná pro výstup

Critical

Critical

Error

CriticalneboError

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

Jsou všechny zprávy jsou povoleny.

Off

Všechny zprávy jsou blokovány.

[!POZNÁMKA]

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

Tato tabulka popisuje výstup protokolu v předchozím příkladu: s výchozím DefaultSwitch nastavení "Informace" pouze druhé volání WriteEntry metoda a volání WriteException výstup protokolu metody produkce.

Jak protokolovat pouze aktivitu trasovacích událostí

  1. V Průzkumníku řešeni klikněte pravým tlačítkem myši na soubor app.config 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, zvolte Aplikační konfigurační soubor.

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

  2. Nalezněte část <switches>, která je v části <system.diagnostics>, která je v nejvyšší úrovní oddílu <configuration>.

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

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

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

  5. 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"/>
            </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 aplikace v ladicím módu.

  7. Stiskněte Button1.

    Aplikace zapíše následující informace do aplikačního výstupu ladění a protokolového souboru:

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. Ukončete aplikaci.

  9. Změňte hodnotu položky valuezpět na "Information".

[!POZNÁMKA]

Nastavení přepínače DefaultSwitch ovládá pouze My.Application.Log. Nemění způsob, jakým se chovají tříd .NET FrameworkTrace a Debug

Individualní filtrování pro posluchače My.Application.Log

Předchozí příklad ukazuje, jak změnit filtrování pro všechny My.Application.Log výstupy. V tomto příkladu je ukázáno, jak filtrovat jednotlivé protokolové posluchače.Ve výchozím nastavení má aplikace dva posluchače, kteří zapisují do ladícího výstupu aplikace a protokolového souboru.

Konfigurační soubor řídí chování protokolových posluchačů tím, že umožňuje každému z nich mít filtr, který je obdobou přepínače pro My.Application.Log. Protokolový posluchač vypíše zprávu, pouze pokud její úroveň závažnost je povolena, jak protokolovým DefaultSwitch tak filtrem protokolového posluchače.

Tento příklad uvádí, jak konfigurovat filtrování pro nové ladící posluchače a přidat ho do objektu Log. Výchozí posluchač ladění by měly být odstraněny z objektu Log, tak aby bylo jasné, že ladící zprávy pocházejí z nového posluchače ladění.

Jak protokolovat pouze události, které trasují aktivity

  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, zvolte Aplikační konfigurační soubor.

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

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

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

  4. Přidejte tento element do sekce <listeners> .

    <!-- Remove the default debug listener. -->
    <remove name="Default"/>
    <!-- Add a filterable debug listener. -->
    <add name="NewDefault"/>
  5. Nalezněte sekci <sharedListeners> v sekci <system.diagnostics>, které je v nejvyšší úroveň oddílu <configuration>.

  6. Přidejte tento element do sekce <sharedListeners>:

    <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 vezme jedenu z výčtových hodnot SourceLevels jako jejíinitializeData atribut.

  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"/>
              <!-- 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 aplikace v ladicím módu.

  9. Stiskněte Button1.

    Aplikace zapisuje následující informace do protokolového souboru aplikace:

    Default Information: 0 : In Button1_Click

    Default Error: 2 : Error in the application.

    Aplikace zapíše méně informací do aplikačního ladícího výstupu z důvodu více restriktivního filtrování.

    Default Error 2 Error

  10. Ukončete aplikaci.

Další informace o změně nastavení protokolování po nasazení naleznete v tématu Práce s protokoly aplikací v jazyce Visual Basic.

Viz také

Úkoly

Návod: Zjištění, kam objekt My.Application.Log zapisuje informace (Visual Basic)

Návod: Změna místa, kam objekt My.Application.Log zapisuje informace (Visual Basic)

Návod: Vytváření vlastních součástí naslouchajících protokolům (Visual Basic)

Postupy: Zápis zpráv protokolu (Visual Basic)

Koncepty

Přepínače trasování

Protokolování informací z aplikace (Visual Basic)