Vytvorte si vlastný protokol udalostí v systéme Windows

Ako viete, väčšina „bežných“ aplikácií zapisuje svoje udalosti do protokolu udalostí systému Windows. Toto je skvelé miesto pre centralizované ukladanie a prezeranie udalostí aplikácií, ale často, keď je potrebné protokolovať udalosti z konkrétnej aplikácie v tomto protokole, sa môže stretnúť skutočnosť, že z dôvodu veľkého počtu a nadmerných detailov udalostí sa práca so štandardným protokolom aplikácií Windows stáva veľmi nepohodlné. V takom prípade by bolo vhodné vytvoriť si vlastný protokol udalostí pre túto aplikáciu a nakonfigurovať preň rôzne parametre, ako je napríklad veľkosť denníka, filtre atď. A štandardný denník aplikácií možno použiť ako zvyčajne, bez toho, aby ste ho upchali zbytočnými informáciami. V operačnom systéme Windows je funkcia, ktorá vám umožňuje vytvoriť si vlastný protokol udalostí.

Najskôr vytvorte nový protokolový súbor. To sa dá urobiť pomocou registra. Spustite editor registrov regedit a choďte do vetvy:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog

Pravým tlačidlom myši kliknite na uzol Eventlog a vytvorte nový kľúč (Nový> Kľúč)

Názov kľúča v tomto prípade bude tiež názov nového denníka. V predvolenom nastavení sa tu vytvára nový protokol (súbor .evt):

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

Môžete ho premenovať zmenou parametra reťazca v registri podľa vášho želania..

Ďalej pridajte Zdroje udalostí pre nový denník. Vytvorte nový kľúč s viacerými reťazcami s názvom „Zdroje“, ako parametre zadajte názvy všetkých aplikácií, ktoré budú tento protokol používať (každú aplikáciu z nového riadku)..

Potom musíte preniesť priradenia svojich aplikácií zo štandardného denníka aplikácií do nového denníka. Rozbaľte vetvu „Aplikácia“ umiestnenú na:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ Application

A skopírujte všetky vetvy, ktoré sa týkajú aplikácií, ktoré vás zaujímajú, do novej pobočky registra nového denníka:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ CustomLog

pretože príkaz kopírovania / vloženia v editore registra nefunguje, môžete ich znova vytvoriť ručne (ak ich je len málo), alebo ich môžete preniesť pomocou postupu exportu / importu vetiev registra s ručnou úpravou súboru .reg. Uistite sa, že po prenose ste odstránili kľúče registra svojich aplikácií z vetvy Aplikácia, inak systém Windows nepochopí, že musíte zapisovať udalosti do nového denníka. Ak pre protokol používate nový zdroj udalostí, budete musieť vytvoriť parameter DWORD s názvom CustomSource a hodnotou 1:

V mojom príklade som vytvoril vlastnú aplikáciu .NET 2.0 a chcem, aby zapisovala udalosti do protokolu, ktorý sme vytvorili. Za týmto účelom vytvorím nový kľúč databázy Registry EventMessageFile a v ňom uvediem cestu k protokolovej knižnici .NET 2.0:

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

Potom musíte reštartovať systém Windows a po načítaní systému sa v sekcii Zobrazovač udalostí zobrazí nový protokol udalostí. Ak vaša aplikácia z nejakého dôvodu nezapíše udalosti do nového denníka, môžete otestovať jeho fungovanie ručne, otvorte príkazový riadok a prejdite do adresára:

CD C: \ WINDOWS \ system32

Potom napíšte:

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

V prípade, že ste všetko urobili správne, by sa malo zobraziť okno informujúce o tom, že udalosť bola úspešne zaznamenaná do denníka, alebo chybové hlásenie a dôvody jeho výskytu..

aktualizácia:

Malá aktualizácia článku podľa čitateľských listov:

Vyššie uvedené pokyny na vytvorenie vlastného denníka sú zamerané na serverové operačné systémy rodiny Microsoft. Všeobecnejší spôsob, ako by mal fungovať na väčšine Windows, je nasledujúci (cesty a kľúče registra sa líšia):

Vytvoríme novú sekciu v registri (názov sekcie je názov vytvoreného protokolu), cesta k vytvorenej sekcii bude takáto:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog \NewEventLog , v ktorých musíte vytvoriť nasledujúce kľúče:

  • “AutoBackupLogFiles” - napíšte DWORD, bez ohľadu na to, či chcete zálohovať denník (0 - nevytvárať)
  • „MaxSize“ je typ DWORD, maximálna veľkosť denníka v bajtoch, hodnota musí byť násobkom 64 kB
  • „Uchovávanie“ - typ DWORD, doba uchovávania záznamov v prípade pretečenia denníka.
  • „Súbor“ - napíšte REG_EXPAND_SZ, reťazec, ktorý obsahuje cestu k protokolu denníka na pevnom disku, napríklad % SystemRoot% \ System32 \ config \NewEventLog.evt)
  • „Zdroje“ - zadajte REG_MULTI_SZ, tu je zoznam zdrojov udalostí, ktorých denníky by mali byť v tomto denníku, každý zdroj z nového riadku