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