Как вы знаете, большинство «нормальных» приложений записывают свои события в журнал событий Windows (Application Event Log). Это отличное место для централизованного хранения и просмотра событий приложений, однако зачастую при возникновении необходимости журналировать события от определенного приложения в данном журнале, мы можем столкнуться с тем, что из-за большого количества и чрезмерной подробности событий, работать со стандартным журналом приложений Windows становится очень неудобно. В данном случае было бы удобно создать собственный журнал событий для данного приложения, и для него настраивать различные параметры, такие как размер журнала, фильтры и т.д., а стандартный журнал Application можно использовать как обычно, не засоряя его ненужной информацией. В ОС семейства Windows присутствует функция, позволяющая создать собственный журнал событий.
Сначала создадим новый файл журнала. Сделать это можно при помощи реестра. Запустите редактор реестра regedit и перейдите в ветку:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog
Щелкните правой кнопкой по узлу Eventlog и создайте новый ключ (New > Key)
Имя ключа в этом случае будет являться и именем нового журнала. По умолчанию новый журнал (файл .evt) создается тут:
C:\WINDOWS\System32\Config\New Key #1.evt
Его можно переименовать, изменив строковый параметр в реестре по своему усмотрению.
Далее нужно добавить источники (Sources) событий для нового журнала. Создайте новый ключ типа Multi-String с именем “Sources”, в качестве параметров укажите имена всех приложений, который будут использовать данный журнал (каждое приложение с новой строки).
Затем нужно перенести ассоциации ваших приложений из стандартного журнала Application в ваш новый журнал. Разверните ветку “Application”, находящуюся по адресу:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application
И скопируйте все ветки, которые относятся к интересуемым Вами приложениям в новый ветку реестра нового журналa:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\CustomLog
Т.к. команда скопировать/вставить в редакторе реестра не работает, их можно пересоздать вручную (если их немного), или же можно осуществить перенос при помощи процедуры экспорта/импорта веток реестра с ручным редактирование .reg файла. Убедитесь, что после переноса вы удалили ключи реестра ваших приложений из ветки Application, иначе 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 Information /so Application1 /id 1 /d "Test message"
В том случае, если вы все сделали правильно должно появиться окно, сообщающее о том, что событие было успешно записан в журнал, либо сообщение об ошибки и причины ее появления.
Update:
Небольшое обновление статьи по письмам читателей:
Вышеприведенная инструкция по созданию собственного журнала ориентирована на серверные ОС семейства 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.evt)
- «Sources»- тип REG_MULTI_SZ, здесь указан список источников событий, чьи логи должны попадать в этот журнал, каждый источник с новой строки
Экспорт в PDF
Дата создания: 2022/05/22 08:24 (C) mihanik
Для создания собственных событий используется утилита Eventcreate. Собственные события можно сохранять в любом доступном журнале за исключением журнала безопасности. Такие события могут содержать источник, код и нужное описание.
Синтаксис Eventcreate
eventcreate /l ИмяЖурнала /so ИсточникСобытия /t ТипСобытия / id КодСобытия /d ОписаниеСобытия
-
ИмяЖурнала — название журнала для записи события; если оно содержит пробелы, заключите его в кавычки, например «DNS Server».
-
ИсточникСобытия — указывает источник события и может быть любой строкой. Если строка содержит пробелы, заключите ее в кавычки, например «Event Tracker*. В большинстве случаев источник указывает на приложение, задание или сценарий, вызвавший ошибку.
-
ТипСобытия — задает тип события. Может принимать значения Information, Warning или Error. Типы событий «Success Audit» и «Failure Audit» неприменимы, так как используются в журнале безопасности, в который записывать собственные события нельзя.
-
КодСобытия — залает числовой код события. Может принимать любое значение от 1 до 1000. Чем случайно назначать идентификаторы, лучше составить список общих событий, которые могут возникнуть, а затем разбить его на категории. Тогда каждой категории можно присвоить свой диапазон кодов событий. Например, события из первой сотни могут быть общими, из второй — событиями состояния, из пятой — предупреждениями, а из девятой — ошибками.
-
ОписаниеСобытия — задает описание события и может быть любой строкой. Не забудьте заключить строку в кавычки.
Применение Eventcreate на нескольких примерах
-
Создать событие-уведомление в журнале приложения с источником Event Tracker и кодом события 209:
eventcreate /l "application" /t information /so "Event Tracker" /id 209 /d "evs.bat script ran without errors."
-
Создать событие-предупреждение в системном журнале с источником CustApp и кодом события 511:
eventcreate /l "system" /t warning /so "CustApp" /id 511 /d "sysck.exe didn't complete successfully."
-
Создать событие-ошибку в системном журнале на MAIL с источником SysMon и кодом события 918:
eventcreate /s Mail /l "system" /t error /so "SysMon" /id 918 /d "sysmon.exe was unable to verify write operation."
⇑ Наверх ⇑
В моей WIKI постоянно ведётся какая-то работа со статьями.
Если у вас возникли вопросы или замечания,
можете их отправлять на почту support@mihanik.net
Команда EVENTCREATE позволяет создавать записи в журналах событий Windows через командную строку на локальном или удалённом компьютере.
Синтаксис команды выглядит следующим образом:
EVENTCREATE [/S < система > [/U < пользователь > [/P < пароль >]]] /ID < код_события > [/L < журнал >] [/SO < источник >] /T < тип > /D < описание >
Параметры команды eventcreate:
/S < система > — подключаемый удалённый компьютер;
/U [< домен >\]< пользователь > — пользовательский контекст, в котором должна выполняться команда;
/P < пароль > — пароль от указанной учётной записи;
/L < журнал > — журнал, в котором будет создано событие;
/T < тип > — тип создаваемого события. Допустимые типы: SUCCESS, ERROR, WARNING и INFORMATION;
/SO < источник > — источник создаваемого события. Допустимым источником является любая строка, представляющая приложение или компонент, создающий событие. Если источник не указан, по умолчанию используется «eventcreate»;
/ID < код_события > — код создаваемого события. Допустимым значением является любое число в диапазоне от 1 до 1000;
/D < описание > — описание создаваемого события.
Примеры использования команды eventcreate:
Записать событие с типом «Информация» и идентификатором 1000 в журнал приложений Windows:
EVENTCREATE /T INFORMATION /ID 1000 /L APPLICATION /D "Пример события в журнале приложений"
Записать событие с типом «Ошибка», кодом события 999 и источником «Proxy Server» (поля, содержащие пробел, должны заключаться в кавычки) в журнал системы Windows:
EVENTCREATE /T ERROR /ID 999 /L SYSTEM /SO "Proxy Server" /D "Ошибка доступа к серверу"
Записать событие с типом «Ошибка» и идентификатором 1 в журнал системы Windows на удалённом компьютере с именем COMPTEST:
EVENTCREATE /S COMPTEST /U username /P password /ID 1 /T ERROR /L SYSTEM /D "Ошибка доступа. Проверьте правильность вводимых учетных данных."
Вместо имени компьютера можно указать его IP-адрес:
EVENTCREATE /S 192.168.1.1 /U username /P password /ID 1 /T ERROR /L SYSTEM /D "Ошибка доступа. Проверьте правильность вводимых учетных данных."
Зачастую команду eventcreate используют в командных файлах для того, чтобы зафиксировать отработку определённых этапов в задачах, выполняемых Планировщиком заданий.
on April 23, 2012
If you want to log an event in any of the event log files, then you can do that using eventcreate command. Logging an event helps the system administrators to trace out things if something has not worked in an expected way. Using this command, we can create a custom event with custom id and description. And we can log the event in any of the event log files(System, Application, Security etc). This post attempts to explain the usage of the eventcreate command.
EventCreate syntax
We need to pass certain parameters while creating an event. The basic ones are listed below.
/Id : Event id
/D : Event description
/T: Event type(can be any of error, information, success or warning)
/L : Event log file name
The syntax for creating an event from windows command line is as follows.
eventcreate /Id eventid /D eventDescription /T eventType /L eventLogfileName
Example:
Create an event in System log file with an id 500 and with the description – ‘windows auto update failed. Could not download the install files’
C:\>eventcreate /Id 500 /D “windows auto update failed. Could not download the install files” /T ERROR /L system
SUCCESS: An event of type ‘ERROR’ was created with ‘system’ as the log.
C:\>
After running the command, I find the below entry in the system log in event viewer(eventvwr.msc)
Specify source for the event:
You can specify how the event is generated by adding source information. This can be specified using /SO option. In the above example, if we want to specify the event source as ‘Windows update’, the command would be as below.
C:\>eventcreate /SO "Windows Update" /Id 500 /D "windows auto update failed. Could not download the install files" /T ERROR /L system
Create events on a remote system:
We can use eventcreate command to log events on remote computers also. We can specify the remote system details with /S (remote computer name/IP), /U (username) /p (password).
Example:
The below command creates an event on the system ‘10.192.10.10’.
C:\>eventcreate /S 10.192.10.10 /U administrator /P password /SO "Windows Update" /Id 500 /D "windows auto update failed. Could not download the install files" /T ERROR /L System SUCCESS: An event of type 'ERROR' was created in the 'System' log with 'Windows Update' as the source. C:\>
Related Posts:
Command line event viewer
How to clear or Backup Windows event log files?
Когда компьютер сталкивается с проблемой или становится нестабильным, первое, что должен сделать опытный пользователь, – это начать устранение неполадок. Существует множество инструментов, которые могут помочь решить ряд проблем, но первый подход должен заключаться в том, чтобы просматривать журналы, создаваемые Windows, для проверки возможных предупреждений или ошибок. Монитор надежности Windows – это одна из функций Windows, которая дает относительно легкие для чтения подробности, но которая получает данные откуда-то с еще большей информацией, а это средство просмотра событий Windows.
Event Viewer – это пользовательский интерфейс для отображения журналов событий Windows, с ним доступен обширный массив информации, чтобы рассказать вам о том, что делают компоненты Windows и программное обеспечение сторонних производителей. Если что-то не так, журналы часто сообщают вам, показывая предупреждение или ошибку для записи, оттуда вы можете искать более глубокие и сужать возможные причины проблемы.
Несмотря на то, что журналы в Event Viewer создаются автоматически Windows или установленными приложениями, конечный пользователь также может добавлять свои собственные записи для создания журнала всего, что он пожелает, обычно используется для мониторинга, когда приложение открывается или закрывается. Добавление записи в журнал выполняется с помощью встроенной в Windows команды EventCreate, поэтому вы можете создать событие из командной строки или даже из ваших собственных сценариев или программ.
Команда Eventcreate работает в Windows XP вплоть до Windows 10 включительно, но имейте в виду, что для ее работы требуются права администратора. Откройте командную строку, введя cmd в Windows Start search и нажав Ctrl + Shift + Enter, чтобы запустить в режиме администратора.
Использование команды EventCreate
Ввод событиясоздать /? покажет список доступных аргументов, вот что они делают:
/ Т – Уровень события для создания, который может быть одним из успех, Предупреждение, ошибка или же Информация (Успех не доступен в XP).
/Я БЫ – Любое целое число между 1 а также 1000 принято
/ L – Укажите, в каком журнале Windows будет создано событие, либо заявка или же система,
/ТАК – Имя для того, что создает событие, лучше всего, чтобы оно было коротким и связано с тем, для чего вы создаете событие. Это будет отображаться в столбце «Источник» в средстве просмотра событий. Обязательно заключайте в кавычки, если ваше имя содержит пробелы.
/ D – Описание события, которое может быть чем угодно, не забудьте заключить фразу в кавычки.
/ S – Подключитесь к удаленной системе, указав имя целевого компьютера.
/ U – Имя пользователя для создания события с альтернативными учетными данными на локальном или удаленном компьютере.
/П – Пароль для создания события с альтернативными учетными данными на локальном или удаленном компьютере.
Объединить некоторые аргументы в простую строку для создания события легко, откройте командную строку администратора и введите команду eventcreate с необходимыми аргументами:
eventcreate / T Информация / ID 20 / L Заявка / SO RaymondccEvent / D «Raymondcc Event for My Program»
Команда Eventcreate немедленно добавит событие в указанный журнал приложения или системы Windows с предоставленными параметрами. Чтобы проверить, что событие было создано, откройте Event Viewer, набрав Eventvwr.msc в окно поиска «Выполнить» или «Пуск» или через «Панель управления»> «Администрирование».
Для создания события на удаленном компьютере добавьте дополнительные аргументы / S RemotePCname / U Имя пользователя / P Пароль.
Создание собственного сценария события
Простое создание настраиваемого события в командной строке имеет свои преимущества, но вы можете сделать больше, включив события в сценарий, например пакет, который создает событие при запуске программы. Вот пример, который вы можете добавить в пакетный скрипт, который создает события при запуске и закрытии Firefox.
eventcreate / T Информация / ID 123 / L Приложение / SO MozillaFirefox / D «Firefox запущен»
«C: Program Files (x86) Mozilla Firefox firefox.exe»
eventcreate / T Информация / ID 124 / L Приложение / SO MozillaFirefox / D «Firefox закрыт»