Vytvořte si vlastní protokol událostí v systému Windows

Jak víte, většina „běžných“ aplikací zapisuje jejich události do protokolu událostí systému Windows. To je skvělé místo pro centralizované ukládání a prohlížení událostí aplikace, ale často, když je nutné protokolovat události z konkrétní aplikace v tomto protokolu, můžeme narazit na skutečnost, že vzhledem k velkému počtu a přílišným detailům událostí se práce se standardním protokolem aplikace Windows stává velmi nepříjemné. V tomto případě by bylo vhodné vytvořit si vlastní protokol událostí pro tuto aplikaci a nakonfigurovat pro ni různé parametry, jako je velikost protokolu, filtry atd. A standardní protokol aplikace lze použít jako obvykle, aniž by jej ucpával zbytečnými informacemi. V operačním systému Windows je funkce, která vám umožní vytvořit si vlastní protokol událostí.

Nejprve vytvořte nový soubor protokolu. To lze provést pomocí registru. Spusťte editor registru regedit a přejděte do větve:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog

Klikněte pravým tlačítkem na uzel Eventlog a vytvořte nový klíč (Nový> Klíč)

Název klíče v tomto případě bude také název nového protokolu. Ve výchozím nastavení je zde vytvořen nový protokol (soubor .evt):

C: \ WINDOWS \ System32 \ Config \ New Key # 1.evt

Můžete jej přejmenovat změnou parametru řetězce v registru, jak si přejete..

Dále přidejte Zdroje událostí pro nový deník. Vytvořte nový klíč s více řetězci s názvem „Zdroje“, zadejte jako parametry všechny aplikace, které budou tento protokol používat (každá aplikace z nového řádku)..

Pak musíte převést přidružení vašich aplikací ze standardního protokolu aplikací do nového protokolu. Rozbalte větev „Aplikace“ na adrese:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ Application

A zkopírujte všechny větve, které se týkají aplikací, které vás zajímají, do nové větve registru nového časopisu:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ CustomLog

Protože příkaz kopírování / vložení v editoru registru nefunguje, můžete je znovu vytvořit ručně (pokud jich je málo), nebo je můžete přenést pomocí postupu exportu / importu větví registru s ruční úpravou souboru REG. Ujistěte se, že po přenosu jste odstranili klíče registru svých aplikací z větve Aplikace, jinak systém Windows nepochopí, že je třeba zapisovat události do nového protokolu. Pokud pro protokol používáte nový zdroj události, budete muset vytvořit parametr DWORD s názvem CustomSource a hodnotou 1:

V mém příkladu jsem vytvořil vlastní aplikaci .NET 2.0 a chci, aby zapisovala události do protokolu, který jsme vytvořili. Za tímto účelem vytvořím nový klíč registru EventMessageFile a do něj zadám cestu k protokolovací knihovně .NET 2.0:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ EventLogMessages.dll

Poté je třeba restartovat systém Windows a po načtení systému se v sekci Prohlížeč událostí zobrazí nový protokol událostí. Pokud aplikace z nějakého důvodu nezapisuje události do nového protokolu, můžete otestovat její fungování ručně, otevřete příkazový řádek a přejděte do adresáře:

CD C: \ WINDOWS \ system32

Pak zadejte:

eventcreate / l CustomLog / t Information / so Application1 / id 1 / d "Test message"

V případě, že jste vše udělali správně, by se mělo zobrazit okno informující o tom, že událost byla úspěšně zaznamenána do protokolu, nebo chybová zpráva a důvody jejího výskytu..

Aktualizace:

Malá aktualizace článku podle dopisů čtenářů:

Výše uvedené pokyny pro vytvoření vlastního deníku jsou zaměřeny na serverové operační systémy rodiny Microsoft. Obecnější způsob práce ve většině Windows je následující (cesty a klíče registru se liší):

V registru vytvoříme novou sekci (název sekce je název vytvořeného protokolu), cesta k vytvořené logice bude následující:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog \NewEventLog , ve kterém musíte vytvořit následující klíče:

  • “AutoBackupLogFiles” - napište DWORD, ať už chcete nebo ne zálohovat deník (0 - nevytvářet)
  • „MaxSize“ je typ DWORD, maximální velikost protokolu v bajtech, hodnota musí být násobkem 64 kB
  • „Retention“ - zadejte DWORD, retenční čas záznamů v případě přetečení deníku.
  • „Soubor“ - zadejte REG_EXPAND_SZ, řetězec, který obsahuje cestu k protokolu protokolu na pevném disku, například % SystemRoot% \ System32 \ config \NewEventLog.evt)
  • „Zdroje“ - zadejte REG_MULTI_SZ, zde je seznam zdrojů událostí, jejichž protokoly by měly být v tomto protokolu, každý zdroj z nového řádku