Създайте свой собствен регистър на събитията в Windows

Както знаете, повечето „нормални“ приложения записват своите събития в дневника на Windows. Това е чудесно място за централизирано съхранение и преглед на събития на приложения, но често когато се налага да регистрирате събития от конкретно приложение в този дневник, можем да срещнем факта, че поради големия брой и прекомерната подробност на събитията, работата със стандартния дневник на приложенията на Windows става много неудобно. В този случай би било удобно да създадете свой собствен дневник за това приложение и да конфигурирате различни параметри за него, като например размера на дневника, филтрите и т.н., а стандартният дневник на приложенията може да се използва както обикновено, без да го запушвате с ненужна информация. В операционната система Windows има функция, която ви позволява да създадете свой собствен дневник.

Първо, създайте нов лог файл. Това може да стане с помощта на системния регистър. Стартирайте редактора на системния регистър regedit и отидете в клона:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog

Щракнете с десния бутон върху възела на Eventlog и създайте нов ключ (Нов> Ключ)

Ключовото име в този случай ще бъде и името на новия дневник. По подразбиране тук се създава нов дневник (.evt файл):

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

Можете да го преименувате, като промените параметъра на низа в системния регистър, както желаете..

След това добавете източниците на събития за новото списание. Създайте нов многострунен ключ с името „Източници“, посочете имената на всички приложения, които ще използват този дневник (всяко приложение от нов ред) като параметри.

След това трябва да прехвърлите асоциациите на вашите приложения от стандартния дневник на приложенията в новия си дневник. Разширете клона „Приложение“, разположен на адрес:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ Application

И копирайте всички клонове, свързани с приложенията, които ви интересуват, в новия клон на системния регистър на новия дневник:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ Eventlog \ CustomLog

защото командата copy / paste в редактора на системния регистър не работи, можете да ги пресъздадете ръчно (ако има малко от тях) или можете да прехвърлите, използвайки процедурата за експортиране / импортиране на клоновете на системния регистър с ръчно редактиране на файла .reg. Уверете се, че след прехвърлянето сте изтрили ключовете на системния регистър на вашите приложения от клона на приложението, в противен случай Windows няма да разбере, че трябва да напишете събития в нов дневник. Ако използвате нов източник на събития за лога, ще трябва да създадете параметър DWORD с името CustomSource и стойност 1:

В моя пример създадох собствено .NET 2.0 приложение и искам то да запише събития в дневника, който създадохме. За да направя това, ще създам нов ключ на системния регистър на EventMessageFile и ще посоча пътя към библиотеката за регистриране на .NET 2.0 в него:

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

След това трябва да рестартирате Windows и след като заредите системата, в секцията Event Viewer ще видите нов дневник на събитията. Ако по някаква причина приложението ви не записва събития в нов дневник, можете да тествате работата му ръчно, отворете командния ред и отидете в директорията:

CD C: \ WINDOWS \ system32

След това въведете:

eventcreate / l CustomLog / t информация / така Application1 / id 1 / d "Тест съобщение"

В случай, че сте направили всичко правилно, трябва да се появи прозорец, информиращ, че събитието е записано успешно в дневника или съобщение за грешка и причините за неговото възникване.

Update:

Малка актуализация на статията чрез писма на читателите:

Горните инструкции за създаване на собствен журнал са фокусирани върху сървърните операционни системи от семейството на Microsoft. По-общият начин, който трябва да работи в повечето Windows, е следният (пътищата и ключовете на регистъра се различават):

Създаваме нов раздел в системния регистър (името на секцията е името на създадения дневник), пътят към създадения ще бъде такъв:

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog \NewEventLog , в който трябва да създадете следните ключове:

  • „AutoBackupLogFiles“ - въведете DWORD, независимо дали да архивирате журнала или не (0 - не създавайте)
  • „MaxSize“ е тип DWORD, максималният размер на лога в байтове, стойността трябва да е кратна на 64Kb
  • „Задържане“ - въведете DWORD, време на задържане на записи в случай на преливане на журнала.
  • „Файл“ - въведете REG_EXPAND_SZ, низ, който съдържа пътя към дневника на дневника на твърдия диск, например % SystemRoot% \ System32 \ config \NewEventLog.EVT)
  • „Източници“ - въведете REG_MULTI_SZ, ето списък на източници на събития, чиито дневници трябва да бъдат в този дневник, всеки източник от нов ред