Як ви знаєте, більшість «нормальних» додатків записують свої події в журнал подій Windows (Application Event Log). Це відмінне місце для централізованого зберігання та перегляду подій додатків, однак найчастіше при виникненні необхідності журналіровать події від певної програми в даному журналі, ми можемо зіткнутися з тим, що через велику кількість і надмірної подробиці подій, працювати зі стандартним журналом додатків Windows стає дуже незручно. В даному випадку було б зручно створити власний журнал подій для цього додатка, і для нього налаштовувати різні параметри, такі як розмір журналу, фільтри і т.д., а стандартний журнал Application можна використовувати як завжди, не засмічуючи його непотрібною інформацією. В ОС сімейства Windows є функція, що дозволяє створити власний журнал подій.

Спочатку створимо новий файл журналу. Зробити це можна за допомогою реєстру. Запустіть редактор реєстру regedit і перейдіть в гілку:

HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventlog

Клацніть правою кнопкою по вузлу Eventlog і створіть новий ключ (New> Key)

Ім’я ключа в цьому випадку буде і ім’ям нового журналу. За замовчуванням новий журнал (файл .evt) створюється тут:

C:WINDOWSSystem32ConfigNew Key #1.evt

Його можна перейменувати, змінивши строковий параметр в реєстрі на свій розсуд.

Далі потрібно додати джерела (Sources) подій для нового журналу. Створіть новий ключ типу Multi-String з ім’ям “Sources”, в якості параметрів вкажіть імена всіх додатків, який будуть використовувати даний журнал (кожен додаток з нового рядка).

Власний журнал подій Windows

Потім потрібно перенести асоціації ваших додатків з стандартного журналу Application в ваш новий журнал. Розгорніть гілку “Application”, що знаходиться за адресою:

HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventlogApplication

І скопіюйте всі гілки, які відносяться до інтересуемого Вами додатків в новий гілку реєстру нового журналa:

HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventlogCustomLog

Оскільки команда скопіювати / вставити в редакторі реєстру не працює, їх можна перебудувати вручну (якщо їх трохи), або ж можна здійснити перенесення за допомогою процедури експорту / імпорту гілок реєстру з ручним редагування .reg файлу. Переконайтеся, що після перенесення ви видалили ключі реєстру ваших додатків з гілки Application, інакше Windows не зрозуміє, що потрібно писати події в новий журнал. У тому випадку, якщо ви використовуєте нове джерело подій для журналу, потрібно буде створити параметр типу DWORD з ім’ям CustomSource і значенням рівним 1:

Як створити свій власний журнал подій в Windows

У моєму прикладі, я створив власний додаток .NET 2.0, причому я хочу, щоб воно записували події в створений нами журнал. Для цього я створю новий ключ реєстру EventMessageFile і вкажу в ньому шлях до бібліотеці журналірованія.NET 2.0:

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

Потім потрібно перезавантажити Windows, а після завантаження системи ви побачите новий журнал подій в розділі Event Viewer-а. У тому випадку, якщо ваше додаток з якої-небудь причини не пише подій в новий журнал, можна протестувати його роботу вручну, відкрийте командую рядок і перейдіть до каталогу:

CD C:WINDOWSsystem32

Потім наберіть:

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

У тому випадку, якщо ви все зробили правильно повинно з’явитися вікно, в якому стверджується, що подія була успішно записаний в журнал, або повідомлення про помилки і причини її появи.

Оновлення:

Невелике оновлення статті за листами читачів:

Вищенаведена інструкція по створенню власного журналу орієнтована на серверні ОС сімейства Microsoft. Більш загальний спосіб, який повинен працювати в більшості Windows наступний (відрізняються шляху в реєстрі і ключі):

Створюємо новий розділ в реєстрі (ім’я розділу – ім’я створюваного журналу), шлях до створеного буде таким:

HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Services Eventlog NewEventLog , В якому потрібно створити такі ключі:

  • «AutoBackupLogFiles» – тип DWORD, створювати чи ні резервні копії журналу (0 – не створювати)
  • «MaxSize» -тип DWORD, максимальні розмір журналу в байтах, значення повинно бути кратним 64 Кб
  • «Retention» – тип DWORD, час зберігання записів в разі переповнення журналу.
  • «File» – тип REG_EXPAND_SZ, рядок, в якій міститься шлях до балці журналу на жорсткому диску, наприклад % SystemRoot% System32 config NewEventLog.Можливо)
  • «Sources» – тип REG_MULTI_SZ, тут вказаний список джерел подій, чиї логи повинні потрапляти в цей журнал, кожне джерело з нового рядка

Leave a Reply

Your email address will not be published. Required fields are marked *