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
Otevřený nový Visual Basic projekt pro aplikace Windows.
Přidejte tlačítko s názvem Button1 do Form1.
V obslužné rutině události Click pro Button1, přidejte následující kód:
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í
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:
V nabídce Projekt klikněte na příkaz Přidat novou položku.
Z dialogového rámečku Přidat novou položku, zvolte Aplikační konfigurační soubor.
Klikněte na tlačítko Přidat.
Nalezněte část <switches>, která je v části <system.diagnostics>, která je v nejvyšší úrovní oddílu <configuration>.
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" />
Změňte hodnotu atributu value na hodnotu "ActivityTracing".
Obsah souboru app.config by měl být podobný následujícímu XML:
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
Ukončete aplikaci.
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
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:
V nabídce Projekt klikněte na příkaz Přidat novou položku.
Z dialogového rámečku Přidat novou položku, zvolte Aplikační konfigurační soubor.
Klikněte na tlačítko Přidat.
Klikněte pravým tlačítkem myši na app.config v Průzkumníku řešení.Zvolte Otevřít.
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>.
Přidejte tento element do sekce <listeners> .
<!-- Remove the default debug listener. -->
<remove name="Default"/>
<!-- Add a filterable debug listener. -->
<add name="NewDefault"/>
Nalezněte sekci <sharedListeners> v sekci <system.diagnostics>, které je v nejvyšší úroveň oddílu <configuration>.
Přidejte tento element do sekce <sharedListeners>: