Utwórz własny dziennik zdarzeń w systemie Windows

Jak wiadomo, większość „normalnych” aplikacji zapisuje swoje zdarzenia w Dzienniku zdarzeń systemu Windows. Jest to świetne miejsce do scentralizowanego przechowywania i przeglądania zdarzeń aplikacji, ale często, gdy konieczne jest rejestrowanie zdarzeń z określonej aplikacji w tym dzienniku, możemy napotkać fakt, że ze względu na dużą liczbę i nadmierną szczegółowość zdarzeń praca ze standardowym dziennikiem aplikacji systemu Windows staje się bardzo niewygodne. W takim przypadku wygodnie byłoby utworzyć własny dziennik zdarzeń dla tej aplikacji i skonfigurować dla niego różne parametry, takie jak rozmiar dziennika, filtry itp., A standardowego dziennika aplikacji można używać jak zwykle, bez zapychania go niepotrzebnymi informacjami. W systemie operacyjnym Windows dostępna jest funkcja umożliwiająca utworzenie własnego dziennika zdarzeń.

Najpierw utwórz nowy plik dziennika. Można to zrobić za pomocą rejestru. Uruchom edytor rejestru regedit i przejdź do oddziału:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog

Kliknij prawym przyciskiem myszy węzeł Eventlog i utwórz nowy klucz (Nowy> Klucz)

Nazwa klucza w tym przypadku będzie także nazwą nowego dziennika. Domyślnie tworzony jest tutaj nowy dziennik (plik .evt):

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

Możesz zmienić nazwę, zmieniając parametr ciągu w rejestrze, jak chcesz..

Następnie dodaj Źródła zdarzeń dla nowego czasopisma. Utwórz nowy klucz Multi-String o nazwie „Źródła”, określ nazwy wszystkich aplikacji, które będą korzystały z tego dziennika (każda aplikacja z nowej linii) jako parametry.

Następnie musisz przenieść powiązania aplikacji ze standardowego dziennika aplikacji do nowego dziennika. Rozwiń gałąź „Aplikacja” znajdującą się pod:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ Application

I skopiuj wszystkie gałęzie związane z aplikacjami, które Cię interesują, do nowej gałęzi rejestru nowego dziennika:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ CustomLog

Ponieważ polecenie kopiuj / wklej w edytorze rejestru nie działa, możesz je ponownie utworzyć ręcznie (jeśli jest ich niewiele) lub możesz przenieść za pomocą procedury eksportu / importu oddziałów rejestru z ręczną edycją pliku .reg. Upewnij się, że po przeniesieniu usunąłeś klucze rejestru aplikacji z gałęzi aplikacji, w przeciwnym razie Windows nie zrozumie, że musisz zapisać zdarzenia w nowym dzienniku. Jeśli używasz nowego źródła zdarzeń dla dziennika, musisz utworzyć parametr DWORD o nazwie CustomSource i wartości 1:

W moim przykładzie utworzyłem własną aplikację .NET 2.0 i chcę, aby zapisywała zdarzenia w utworzonym przez nas dzienniku. Aby to zrobić, utworzę nowy klucz rejestru EventMessageFile i podam w nim ścieżkę do biblioteki rejestrowania .NET 2.0:

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

Następnie musisz ponownie uruchomić system Windows, a po załadowaniu systemu zobaczysz nowy dziennik zdarzeń w sekcji Podgląd zdarzeń. Jeśli z jakiegoś powodu twoja aplikacja nie zapisuje zdarzeń w nowym logu, możesz przetestować jej działanie ręcznie, otwórz wiersz poleceń i przejdź do katalogu:

CD C: \ WINDOWS \ system32

Następnie wpisz:

eventcreate / l CustomLog / t Informacje / so Aplikacja1 / id 1 / d „Komunikat testowy”

W przypadku, gdy zrobiłeś wszystko poprawnie, powinno pojawić się okno z informacją, że zdarzenie zostało pomyślnie zarejestrowane w dzienniku lub komunikat o błędzie i przyczyny jego wystąpienia.

Aktualizacja:

Mała aktualizacja artykułu listami czytelników:

Powyższe instrukcje tworzenia własnego dziennika dotyczą systemów operacyjnych dla serwerów z rodziny Microsoft. Bardziej ogólny sposób, który powinien działać w większości systemów Windows, jest następujący (ścieżki rejestru i klucze różnią się):

W rejestrze tworzymy nową sekcję (nazwa sekcji to nazwa tworzonego dziennika), ścieżka do utworzonej będzie następująca:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog \NewEventLog , w którym musisz utworzyć następujące klucze:

  • „AutoBackupLogFiles” - wpisz DWORD, czy chcesz utworzyć kopię zapasową dziennika (0 - nie twórz)
  • „MaxSize” to typ DWORD, maksymalny rozmiar dziennika w bajtach, wartość musi być wielokrotnością 64 KB
  • „Retention” - wpisz DWORD, czas przechowywania rekordów w przypadku przepełnienia dziennika.
  • „Plik” - wpisz na przykład REG_EXPAND_SZ, ciąg zawierający ścieżkę do dziennika dziennika na dysku twardym, na przykład % SystemRoot% \ System32 \ config \NewEventLog.evt)
  • „Źródła” - wpisz REG_MULTI_SZ, tutaj jest lista źródeł zdarzeń, których logi powinny znajdować się w tym logu, każde źródło z nowej linii