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