Sdílet prostřednictvím


Práce s protokoly aplikace v jazyce Visual Basic

Objekty My.Applicaton.Log a My.Log usnadňují zapisování protokolových a trasovacích informací do protokolu.

Jak jsou zprávy protokolovány

Nejprve je zkontrolována závažnost zprávy pomocí vlastnosti Switch protokolové vlastnosti TraceSource. V výchozím nastavení jsou předány do posluchače trasování pouze zprávy s závažnosti "Informace" a vyšším, stanovené v protokolové kolekci TraceListener. Potom každý posluchač porovná závažnost zprávy s vlastností Switch posluchače. Pokud je závažnost zprávy do vysoká, posluchač vypíše zprávu.

Následující diagram ukazuje, jak je zpráva zapsána do metody WriteEntry předána do metody WriteLine protokolového posluchače trasování:

Volání protokolu objektu My

Změnou konfigurační soubor aplikace můžete změnit chování protokolování a posluchače trasování. Následující diagram ukazuje souvislost mezi částmi tohoto protokolu a konfiguračního souboru.

Konfigurace protokolu objektu My

Kam jsou zprávy protokolovány

Pokud sestavení nemá konfigurační soubor, objekty My.Application.Log a My.Log zapisují do aplikačního výstupu ladění (přes třídu DefaultTraceListener). Kromě toho objekt My.Application.Log zapíše do protokolového souboru sestavení (přes třídu FileLogTraceListener), zatímco objekt My.Log zapíše výstup do výstupní webové stránky technologie ASP.NET (přes třídu WebPageTraceListener).

Výstup ladění lze zobrazit v okně Výstup v Visual Studio při spuštění aplikace v režimu ladění. Chcete-li otevřít okno Výstup, klikněte na položku Ladit, ukazující na Windows a potom klikněte na tlačítko Výstup. V okně Výstup vyberte Ladit z pole Zobrazit výstup z.

Ve výchozím nastavení My.Application.Log zapisuje protokolový soubor do umístění uživatelských aplikačních dat. Cestu můžete získat z vlastnosti FullLogFileName objektu DefaultFileLogWriter. Formát cesty je následující:

BasePath\CompanyName\ProductName\ProductVersion

Typické hodnota pro BasePathje následující.

C:\Documents and Settings\ username\Application Data

Hodnoty CompanyName, ProductName, a ProductVersion pochází z informací o sestavení aplikace. Formát názvu protokolového souboru je AssemblyName.log, kde AssemblyName je název soubor bez přípony sestavení. Pokud je zapotřebí více než jeden protokolový soubor, například když je původní protokolový soubor nedostupný, když se do něj aplikace snaží zapisovat, formát názvu protokolového souboru je AssemblyName-iterace.log, kde iteration je pozitivní Integer.

Můžete přepsat výchozí chování přidáním nebo změnou aplikačních a počítačových konfiguračních souborů. Další informace naleznete v tématu Podrobné pokyny: Změna, kde My.Application.Log zapisuje informace (Visual Basic).

Konfigurace protokolových nastavení

Objekt Log má výchozí implementaci, která funguje i bez konfigurační souborů aplikace app.config. Chcete-li změnit výchozí nastavení, je nutné přidat konfigurační soubor s novým nastavením. Další informace naleznete v tématu Podrobné pokyny: Filtrování výstupu My.Application.Log (Visual Basic).

Části protokolové konfigurace jsou umístěny v uzlu <system.diagnostics>v hlavním uzlu <configuration> souboru app.config. Protokolová informace je definována v několika uzlech:

  • Posluchače pro objekt Log jsou definovány v uzlu <sources> s názvem DefaultSource.

  • Filtr závažnosti pro objekt Log je definován v uzlu <switches> uzel s názvem DefaultSwitch.

  • Protokolové posluchači jsou definováni v uzlu <sharedListeners>.

Příklady uzlů <sources>, <switches> a <sharedListeners> jsou zobrazeny 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í protokolování po nasazení

Když vyvíjíte aplikaci, její konfigurační nastavení je uloženo v app.config, jak je znázorněno na předchozích příkladech. Po nasazení vaší aplikace, může stále konfigurovat protokolování úpravou konfiguračního souboru. V aplikacích určených pro systém Windows je název tohoto souboru applicationName.exe.config a musí být umístěn ve stejné složca jako spustitelný soubor. Pro webovou aplikace se jedná o soubor web.config přidružený k projektu.

Jakmile aplikace spustí kód, který poprvé vytvoří instanci třídy, zkontroluje konfigurační soubor z důvodu získání informací o objektu. Pro objekt Log k tomu dojde, když je poprvé přistupováno k Log objektu. Systém zkontroluje konfigurační soubor pouze jednou pro každý konkrétní objekt – vždy pří prvním vytvoření objektu aplikace. Proto je někdy potřeba restartovat aplikaci.

V nasazených aplikacích (před spuštěním aplikace) povolíte překonfigurování přepínače objektů k povolení trasovaní. Obvykle to zahrnuje zapnutí nebo vypnutí přepínače objektů nebo změnu úrovní trasování a následné restartování aplikace.

Důležité informace o zabezpečení

Při zápisu data do protokolu zvažte následující skutečnosti:

  • Vyhněte se prosakování uživatelských informací (protokolování citlivých údajů). Přesvědčte se, že vaše aplikace zapisuje pouze schválené informace do protokolu. Například může být přijatelné zapisovat do aplikačního protokolu uživatelské jména, ale již né uživatelské hesla.

  • Zabezpečte umístění protokolu. Libovolný protokol, který obsahuje potenciálně citlivé informace, by měly být skladován na bezpečném místě.

  • Vyhněte se zavádějícím informacím. Obecně by vaše aplikace měla ověřit všechna data zadaná uživatelem před tím než budou použité. Jedná se tedy i o zápis dat do aplikačního protokolu.

  • Vyhněte se odepření služby. Pokud aplikace zapisuje příliš mnoho informací do protokolu, mohla by zaplnit protokol nebo znepříjemnit pozdější vyhledávání informací.

Viz také

Odkaz

Microsoft.VisualBasic.Logging.Log

Koncepty

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