Práce s protokoly aplikací v jazyce Visual Basic
Objekty My.Application.Log
usnadňují My.Log
zápis informací protokolování a trasování do protokolů.
Jak se protokolují zprávy
Nejprve je závažnost zprávy kontrolována vlastností Switch protokolu TraceSource . Ve výchozím nastavení se do naslouchacích procesů trasování zadané v kolekci protokolu TraceListener
předávají pouze zprávy se závažností "Informace" a vyšší. Každý naslouchací proces pak porovná závažnost zprávy s vlastností naslouchacího Switch procesu. Pokud je závažnost zprávy dostatečně vysoká, naslouchací proces zprávu zapíše.
Následující diagram ukazuje, jak se do metody naslouchacího procesu trasování protokolu předá WriteLine
zpráva zapsaná do WriteEntry
metody:
Chování protokolu a naslouchacích procesů trasování můžete změnit změnou konfiguračního souboru aplikace. Následující diagram znázorňuje korespondenci mezi částmi protokolu a konfiguračním souborem.
Kde jsou zprávy zaprotokolovány
Pokud sestavení nemá žádný konfigurační soubor, My.Application.Log
objekty a My.Log
zapisují se do výstupu ladění aplikace (prostřednictvím DefaultTraceListener třídy). Kromě toho objekt My.Application.Log
zapisuje do souboru protokolu sestavení (prostřednictvím FileLogTraceListener třídy), zatímco My.Log
objekt zapisuje do výstupu ASP.NET webové stránky (prostřednictvím WebPageTraceListener třídy).
Výstup ladění je možné zobrazit v okně Výstup sady Visual Studio při spuštění aplikace v režimu ladění. Chcete-li otevřít okno Výstup , klepněte na položku nabídky Ladění , přejděte na příkaz Windows a klepněte na příkaz Výstup. V okně Výstup vyberte Možnost Ladit z pole Zobrazit výstup .
Ve výchozím nastavení My.Application.Log
zapíše soubor protokolu do cesty k datům aplikace uživatele. Cestu můžete získat z FullLogFileName vlastnosti objektu DefaultFileLogWriter . Formát této cesty je následující:
BasePath
\CompanyName
\ProductName
\ProductVersion
Typická hodnota je BasePath
následující.
C:\Documents and Nastavení\username
\Application Data
Hodnoty CompanyName
, ProductName
a ProductVersion
pocházejí z informací o sestavení aplikace. Forma názvu souboru protokolu je AssemblyName.log, kde AssemblyName je název souboru sestavení bez přípony. Pokud je potřeba více než jeden soubor protokolu, například pokud je původní protokol nedostupný, když se aplikace pokusí zapisovat do protokolu, je formulář pro název souboru protokolu iterace AssemblyName-.log, kde iteration
je pozitivní .Integer
Výchozí chování můžete přepsat přidáním nebo změnou konfiguračních souborů počítače a aplikace. Další informace naleznete v tématu Návod: Změna umístění zápisu my.application.log informace.
Konfigurace Nastavení protokolu
Objekt Log
má výchozí implementaci, která funguje bez konfiguračního souboru aplikace app.config. Pokud chcete výchozí hodnoty změnit, musíte přidat konfigurační soubor s novým nastavením. Další informace naleznete v tématu Návod: Filtrování výstupu My.Application.Log.
Oddíly konfigurace protokolu se nacházejí v <system.diagnostics>
uzlu v hlavním <configuration>
uzlu souboru app.config. Informace protokolu se definují v několika uzlech:
Naslouchací procesy pro
Log
objekt jsou definovány v<sources>
uzlu s názvem DefaultSource.Filtr závažnosti objektu
Log
je definován v<switches>
uzlu s názvem DefaultSwitch.Naslouchací procesy protokolů jsou definovány v
<sharedListeners>
uzlu.
<sources>
Příklady , <switches>
a <sharedListeners>
uzlů jsou uvedeny v následujícím kódu:
<configuration>
<system.diagnostics>
<sources>
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
</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"
/>
</sharedListeners>
</system.diagnostics>
</configuration>
Změna Nastavení protokolu po nasazení
Při vývoji aplikace se její nastavení konfigurace uloží do souboru app.config, jak je znázorněno v příkladech výše. Po nasazení aplikace můžete protokol přesto nakonfigurovat úpravou konfiguračního souboru. V aplikaci založené na systému Windows je název tohoto souboru applicationName.exe.config a musí se nacházet ve stejné složce jako spustitelný soubor. Pro webovou aplikaci se jedná o soubor Web.config přidružený k projektu.
Když vaše aplikace poprvé spustí kód, který vytvoří instanci třídy, zkontroluje konfigurační soubor informace o objektu. U objektu Log
k tomu dojde při prvním přístupu k objektu Log
. Systém zkontroluje konfigurační soubor pouze jednou pro libovolný konkrétní objekt – při prvním vytvoření objektu aplikace. Proto možná budete muset aplikaci restartovat, aby se změny projevily.
V nasazené aplikaci povolíte trasovací kód tak, že před spuštěním aplikace překonfigurujete objekty přepínače. Obvykle se jedná o zapnutí a vypnutí objektů přepínače nebo změnu úrovní trasování a následné restartování aplikace.
Aspekty zabezpečení
Při zápisu dat do protokolu zvažte následující skutečnosti:
Vyhněte se úniku informací o uživateli. Ujistěte se, že vaše aplikace zapisuje do protokolu jenom schválené informace. Může být například přijatelné, aby protokol aplikace obsahoval uživatelská jména, ale ne uživatelská hesla.
Zabezpečte umístění protokolů. Všechny protokoly, které obsahují potenciálně citlivé informace, by měly být uloženy v zabezpečeném umístění.
Vyhněte se zavádějícím informacím. Obecně platí, že aplikace by měla před použitím dat ověřit všechna data zadaná uživatelem. To zahrnuje zápis dat do protokolu aplikace.
Vyhněte se odepření služby. Pokud vaše aplikace zapisuje do protokolu příliš mnoho informací, může zaplnit protokol nebo ztěžovat hledání důležitých informací.