Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Otevřete nový projekt aplikace pro Windows jazyka Visual Basic.
Přidejte tlačítko s názvem Button1 do formuláře 1.
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)Spusťte aplikaci v debuggeru.
Stiskněte tlačítko1.
Aplikace zapíše do souboru protokolu a výstupu ladění aplikace následující informace.
DefaultSource Information: 0 : In Button1_ClickDefaultSource Error: 2 : Error in the application.Zavřete aplikaci.
Informace o tom, jak zobrazit okno ladicího výstupu aplikace, viz část 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 druhé volání metody WriteEntry a volání metody WriteException vytvářejí výstup protokolu, zatímco první a poslední volání metody
WriteEntrynikoliv. Důvodem je to, že úrovněWriteEntryzávažnosti aWriteExceptionjsou "Informace" a "Chyba", z nichž obě jsou povoleny výchozím filtrovánímMy.Application.Logprotokolu 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 posluchače My.Application.Log
Objekt My.Application.Log používá SourceSwitch pojmenovaný DefaultSwitch ke kontrole, které zprávy předává z metod WriteEntry a WriteException log posluchačům. 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:
Jednotlivé metody WriteEntry a WriteException mají přetížení, které nemají zadanou ú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 "Error".
Tato tabulka vysvětluje výstup protokolu zobrazený v předchozím příkladu: s výchozím nastavením DefaultSwitch "Informace" vytvoří výstup protokolu pouze druhé volání metody WriteEntry a volání metody WriteException.
Protokolovat pouze události trasování aktivit
V Průzkumníku řešení klikněte pravým tlačítkem na app.config a vyberte Otevřít.
nebo
Pokud neexistuje žádný soubor app.config:
V nabídce Projekt zvolte Přidat novou položku.
V dialogovém okně Přidat novou položku zvolte Konfigurační soubor aplikace.
Klikněte na tlačítko Přidat.
Vyhledejte oddíl
<switches>, který je v oddílu<system.diagnostics>, který je v oddílu nejvyšší úrovně<configuration>.Najděte prvek, který přidává
DefaultSwitchdo kolekce přepínačů. Měl by vypadat podobně jako tento prvek:<add name="DefaultSwitch" value="Information" />Změňte hodnotu atributu
valuena ActivityTracing.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>Spusťte aplikaci v debuggeru.
Stiskněte tlačítko1.
Aplikace zapisuje následující informace do výstupu ladění aplikace a do souboru protokolu.
DefaultSource Start: 4 : Entering Button1_ClickDefaultSource Stop: 5 : Leaving Button1_ClickZavřete aplikaci.
Změňte hodnotu atributu
valuezpět na Informace.Poznámka:
Nastavení přepínače ovládá pouze
DefaultSwitch. Nemění způsob, jakým se chovají třídy .NET System.Diagnostics.Trace a System.Diagnostics.Debug.
Individuální filtrování pro posluchače protokolů 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ého posluchače 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í posluchačů logů tím, že každému umožňuje mít filtr, který je podobný přepínači pro My.Application.Log. Záznamový poslechový proces zobrazí zprávu pouze tehdy, pokud je závažnost zprávy povolena jak filtrem protokolu, tak filtrem záznamového poslechového procesu.
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í.
Protokolovat jen události sledování aktivit
V Průzkumníku řešení klikněte pravým tlačítkem na app.config a zvolte Otevřít.
nebo
Pokud neexistuje žádný soubor app.config:
V nabídce Projekt zvolte Přidat novou položku.
V dialogovém okně Přidat novou položku zvolte Konfigurační soubor aplikace.
Klikněte na tlačítko Přidat.
V Průzkumníku řešení klikněte pravým tlačítkem na app.config. Zvolte Otevřít.
V oddílu
<listeners>vyhledejte oddíl<source>s atributemname"DefaultSource", který je pod oddílem<sources>. Oddíl<sources>je pod oddílem<system.diagnostics>v oddílu nejvyšší úrovně<configuration>.Přidejte tento prvek do oddílu
<listeners>:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>Najděte sekci
<sharedListeners>, v rámci sekce<system.diagnostics>, v rámci sekce nejvyšší úrovně<configuration>.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 přebírá jednu z hodnot výčtu SourceLevels jako svůj atribut
initializeData.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>Spusťte aplikaci v debuggeru.
Stiskněte tlačítko1.
Aplikace zapíše do souboru protokolu aplikace následující informace:
Default Information: 0 : In Button1_ClickDefault Error: 2 : Error in the application.Aplikace zapisuje méně informací do ladicího výstupu aplikace kvůli přísnějšímu filtrování.
Default Error 2 ErrorZavřete aplikaci.
Další informace o změně nastavení protokolu po nasazení najdete v tématu Práce s protokoly aplikací.