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
Otevřete nový projekt Visual Basic Windows aplikace.
Přidejte tlačítko s názvem Button1 do Form1.
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)Spusťte aplikaci v ladicím programu.
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_ClickDefaultSource Error: 2 : Error in the application.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
WriteEntrynikoli. Je to proto, že úrovně závažnosti a jsouWriteEntryWriteException"Informace" a "Chyba", které jsou povoleny výchozím filtrováním protokoluMy.Application.Logobjektu. 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
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:
V nabídce Project vyberte Přidat novou položku.
V dialogovém okně Přidat novou položku zvolte Konfigurační soubor aplikace.
Klikněte na Přidat.
Vyhledejte oddíl , který je v části , která je v části
<switches><system.diagnostics>nejvyšší<configuration>úrovně.Vyhledejte prvek, který
DefaultSwitchse přidá do kolekce přepínačů. Měl by vypadat podobně jako tento element:<add name="DefaultSwitch" value="Information" />Změňte hodnotu
valueatributu na "ActivityTracing".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>Spusťte aplikaci v ladicím programu.
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_ClickDefaultSource Stop: 5 : Leaving Button1_ClickZavřete aplikaci.
Změňte hodnotu
valueatributu zpět na "Information".Poznámka
Nastavení
DefaultSwitchpřepínače řídí pouzeMy.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
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:
V nabídce Project vyberte Přidat novou položku.
V dialogovém okně Přidat novou položku zvolte Konfigurační soubor aplikace.
Klikněte na Přidat.
Klikněte pravým tlačítkem na app.config v Průzkumník řešení. Zvolte Otevřít.
Vyhledejte
<listeners>oddíl v části s<source>nameatributem DefaultSource, který je v<sources>části . Oddíl se nachází v části nejvyšší<sources><system.diagnostics><configuration>úrovně.Do oddílu přidejte
<listeners>tento element:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>V části nejvyšší úrovně vyhledejte oddíl
<sharedListeners><system.diagnostics><configuration>.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
initializeDataatribut.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>Spusťte aplikaci v ladicím programu.
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 zapíše do výstupu ladění aplikace méně informací 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í.