Создаем собственный журнал событий в Windows. Создание собственных событий Windows в журнале
Статьи Создание своего журнала событий в Windows XP
Саныч
Ветеран
Большинство приложений записывают свои события в журнал событий Windows. Это отличное место для централизованного хранения и просмотра событий приложений, однако зачастую при возникновении необходимости журналировать события от определенного приложения в данном журнале.
В этом случае мы можем столкнуться с тем, что из-за большого количества и чрезмерной подробности событий, работать со стандартным журналом приложений Windows становится очень неудобно. В данном случае было бы удобно создать собственный журнал событий для данного приложения, и для него настраивать различные параметры, такие как размер журнала, фильтры и т.д., а стандартный журнал Application можно использовать как обычно, не засоряя его ненужной информацией. В ОС семейства Windows присутствует функция, позволяющая создать собственный журнал событий.
Сначала создадим новый файл журнала. Сделать это можно при помощи реестра. Запустите редактор реестра regedit и перейдите в ветку:
Щелкните правой кнопкой по узлу Eventlog и создайте новый ключ (New > Key)
Имя ключа в этом случае будет являться и именем нового журнала. По умолчанию новый журнал (файл .evt) создается тут:
C:WINDOWSSystem32ConfigNew Key #1.evt
Его можно переименовать, изменив строковый параметр в реестре по своему усмотрению.
Далее нужно добавить источники (Sources) событий для нового журнала. Создайте новый ключ типа Multi-String с именем “Sources”, в качестве параметров укажите имена всех приложений, который будут использовать данный журнал (каждое приложение с новой строки).
Затем нужно перенести ассоциации ваших приложений из стандартного журнала Application в ваш новый журнал. Разверните ветку “Application”, находящуюся по адресу:
И скопируйте все ветки, которые относятся к интересуемым Вами приложениям в новый ветку реестра нового журналa:
Т.к. команда скопировать/вставить в редакторе реестра не работает, их можно пересоздать вручную (если их немного), или же можно осуществить перенос при помощи процедуры экспорта/импорта веток реестра с ручным редактирование .reg файла. Убедитесь, что после переноса вы удалили ключи реестра ваших приложений из ветки Application, иначе Windows не поймет, что нужно писать события в новый журнал. В том случае, если вы используете новый источник событий для журнала, нужно будет создать параметр типа DWORD с именем CustomSource и значением равным 1:
В примере, я создал собственное приложение .NET 2.0, причем я хочу, чтобы оно записывало события в созданный нами журнал. Для этого я создам новый ключ реестра EventMessageFile и укажу в нем путь к библиотеке журналирования.NET 2.0:
C:WINDOWSMicrosoft.NETFrameworkv2.0.50727EventLogMessages.dll
Затем нужно перезагрузить Windows, а после загрузки системы вы увидите новый журнал событий в разделе Event Viewer-а. В том случае, если ваше приложение по какой-либо причине не пишет событий в новый журнал, можно протестировать его работу вручную, откройте командую строку и перейдите в каталог:
eventcreate /l CustomLog /t Information /so Application1 /id 1 /d “Test message”
В том случае, если вы все сделали правильно должно появиться окно, сообщающее о том, что событие было успешно записан в журнал, либо сообщение об ошибки и причины ее появления. Если вы все сделали о данному руководству, проблем возникнуть не должно.
Журнал событий в Windows: как его открыть и найти информацию об ошибке
Доброго дня!
Даже если вы за компьютером ничего не делаете — в процессе работы ОС Windows записывает часть данных в спец. документы (их еще называют логами или системными журналами) . Как правило, под-запись попадают различные события, например, включение/выключение ПК, возникновение ошибок, обновления и т.д.
Разумеется, в некоторых случаях эти записи могут быть очень полезными. Например, при поиске причин возникновения ошибок, синих экранов, внезапных перезагрузок и т.д. Отмечу, что если у вас установлена не официальная версия Windows — может так стать, что журналы у вас отключены.
В общем, в этой заметке покажу азы работы с журналами событий в Windows (например, как найти ошибку и ее код, что несомненно поможет в диагностике).
Работа с журналом событий (для начинающих)
Как его открыть
Этот вариант универсальный и работает во всех современных версиях ОС Windows.
- нажать сочетание кнопок Win+R — должно появиться окно “Выполнить”;
- ввести команду eventvwr и нажать OK ( примечание : также можно воспользоваться диспетчером задач (Ctrl+Shift+Esc) — нажать по меню “Файл/новая задача” и ввести ту же команду eventvwr ) ;
eventvwr — команда для вызова журнала событий
после этого у вас должно появиться окно “Просмотр событий” — обратите внимание на левую колонку, в ней как раз и содержатся всевозможные журналы Windows.
- сначала необходимо открыть панель управления и перейти в раздел “Система и безопасность” ;
Система и безопасность
далее необходимо перейти в раздел “Администрирование” ;
после кликнуть мышкой по ярлыку “Просмотр событий” .
Просмотр событий — Администрирование
Актуально для пользователей Windows 10.
1) Нажать по значку с “лупой” на панели задач, в поисковую строку написать “событий” и в результатах поиска ОС Windows предоставит вам ссылку на журнал (см. скрин ниже).
Windows 10 — события
2) Еще один способ: нажать сочетание Win+X — появится меню со ссылками на основные инструменты, среди которых будет и журнал событий.
Win+X — вызов меню
Журналы Windows
Наибольшую пользу (по крайней мере, для начинающих пользователей) представляет раздел “Журналы Windows” (выделен на скрине выше). Довольно часто при различных неполадках приходится изучать как раз его.
В нем есть 5 вкладок, из которых 3 основных: “Приложение”, “Безопасность”, “Система”. Именно о них пару слов подробнее:
- “Приложение” — здесь собираются все ошибки (и предупреждения), которые возникают из-за работы программ. Вкладка будет полезна в тех случаях, когда у вас какое-нибудь приложение нестабильно работает;
- “Система” — в этой вкладке содержатся события, которые сгенерированы различными компонентами ОС Windows (модули, драйверы и пр.);
- “Безопасность” — события, относящиеся к безопасности системы (входы в учетную запись, раздача прав доступа папкам и файлам, и т.д.).
Как найти и просмотреть ошибки (в т.ч. критические)
Надо сказать, что Windows записывает в журналы очень много различной информации (вы в этом можете убедиться, открыв любой из них). Среди стольких записей найти нужную ошибку не так просто. И именно для этого здесь предусмотрены спец. фильтры. Ниже покажу простой пример их использования.
И так, сначала необходимо выбрать нужный журнал (например “Система”) , далее кликнуть в правой колонке по инструменту “Фильтр текущего журнала” .
Система — фильтр текущего журнала / Кликабельно
После указать дату, уровень события (например, ошибки), и нажать OK.
В результате вы увидите отфильтрованный список событий. Ориентируясь по дате и времени вы можете найти именно ту ошибку, которая вас интересует. Например, в своем примере я нашел ошибку из-за которой компьютер перезагрузился (благодаря коду ошибки и подробному описанию можно найти ее решение на сайте Microsoft) .
Представлены все ошибки по дате и времени их возникновения / Кликабельно
Т.е. как видите из примера — использование журнала событий очень даже помогает в решении самых разных проблем с ПК.
Можно ли отключить журналы событий
Можно! Только нужно ли? (хотя не могу не отметить, что многие считают, что на этом можно сэкономить толику дискового пространства, плюс система более отзывчива и меньше нагрузка на жесткий диск)
Для отключения журналов событий нужно:
- открыть “службы” (для этого нажмите Win+R , введите команду services.msc и нажмите OK) ;
Открываем службы – services.msc (универсальный способ)
далее нужно найти службу “Журнал событий Windows” и открыть ее;
Службы — журналы событий
после перевести тип запуска в режим “отключена” и нажать кнопку “остановить” . Затем сохранить настройки и перезагрузить компьютер.
Создаем собственный журнал событий в Windows
Как вы знаете, большинство «нормальных» приложений записывают свои события в журнал событий Windows (Application Event Log). Это отличное место для централизованного хранения и просмотра событий приложений, однако зачастую при возникновении необходимости журналировать события от определенного приложения в данном журнале, мы можем столкнуться с тем, что из-за большого количества и чрезмерной подробности событий, работать со стандартным журналом приложений Windows становится очень неудобно. В данном случае было бы удобно создать собственный журнал событий для данного приложения, и для него настраивать различные параметры, такие как размер журнала, фильтры и т.д., а стандартный журнал Application можно использовать как обычно, не засоряя его ненужной информацией. В ОС семейства Windows присутствует функция, позволяющая создать собственный журнал событий.
Сначала создадим новый файл журнала. Сделать это можно при помощи реестра. Запустите редактор реестра regedit и перейдите в ветку:
Щелкните правой кнопкой по узлу Eventlog и создайте новый ключ (New > Key)
Имя ключа в этом случае будет являться и именем нового журнала. По умолчанию новый журнал (файл .evt) создается тут:
Его можно переименовать, изменив строковый параметр в реестре по своему усмотрению.
Далее нужно добавить источники (Sources) событий для нового журнала. Создайте новый ключ типа Multi-String с именем “Sources”, в качестве параметров укажите имена всех приложений, который будут использовать данный журнал (каждое приложение с новой строки).
Затем нужно перенести ассоциации ваших приложений из стандартного журнала Application в ваш новый журнал. Разверните ветку “Application”, находящуюся по адресу:
И скопируйте все ветки, которые относятся к интересуемым Вами приложениям в новый ветку реестра нового журналa:
Т.к. команда скопировать/вставить в редакторе реестра не работает, их можно пересоздать вручную (если их немного), или же можно осуществить перенос при помощи процедуры экспорта/импорта веток реестра с ручным редактирование .reg файла. Убедитесь, что после переноса вы удалили ключи реестра ваших приложений из ветки Application, иначе Windows не поймет, что нужно писать события в новый журнал. В том случае, если вы используете новый источник событий для журнала, нужно будет создать параметр типа DWORD с именем CustomSource и значением равным 1:
В моем примере, я создал собственное приложение .NET 2.0, причем я хочу, чтобы оно записывало события в созданный нами журнал. Для этого я создам новый ключ реестра EventMessageFile и укажу в нем путь к библиотеке журналирования.NET 2.0:
Затем нужно перезагрузить Windows, а после загрузки системы вы увидите новый журнал событий в разделе Event Viewer-а. В том случае, если ваше приложение по какой-либо причине не пишет событий в новый журнал, можно протестировать его работу вручную, откройте командую строку и перейдите в каталог:
В том случае, если вы все сделали правильно должно появиться окно, сообщающее о том, что событие было успешно записан в журнал, либо сообщение об ошибки и причины ее появления.
Update:
Небольшое обновление статьи по письмам читателей:
Вышеприведенная инструкция по созданию собственного журнала ориентирована на серверные ОС семейства Microsoft. Более общий способ, который должен работать в большинстве Windows следующий (отличаются пути в реестре и ключи):
Создаем новый раздел в реестре (имя раздела — имя создаваемого журнала), путь к созданному будет таким:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesEventlogNewEventLog , в котором нужно создать следующие ключи:
- «AutoBackupLogFiles» — тип DWORD, создавать или нет резервные копии журнала (0 — не создавать)
- «MaxSize» -тип DWORD, максимальны размер журнала в байтах, значение должно быть кратным 64Кб
- «Retention» — тип DWORD, время хранения записей в случае переполнения журнала.
- «File» — тип REG_EXPAND_SZ, строка, в которой содержится путь к логу журнала на жестком диске, например %SystemRoot%System32configNewEventLog.evt)
- «Sources»- тип REG_MULTI_SZ, здесь указан список источников событий, чьи логи должны попадать в этот журнал, каждый источник с новой строки