Создание своего журнала событий в Windows XP

Тема в разделе "Microsoft Windows XP", создана пользователем Саныч, 4 ноя 2011.

Статус темы:
Закрыта.
  1. Саныч
    Оффлайн

    Саныч Активный пользователь

    Сообщения:
    869
    Симпатии:
    1.697
    Большинство приложений записывают свои события в журнал событий Windows. Это отличное место для централизованного хранения и просмотра событий приложений, однако зачастую при возникновении необходимости журналировать события от определенного приложения в данном журнале.

    В этом случае мы можем столкнуться с тем, что из-за большого количества и чрезмерной подробности событий, работать со стандартным журналом приложений 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”, в качестве параметров укажите имена всех приложений, который будут использовать данный журнал (каждое приложение с новой строки).

    [​IMG]

    Затем нужно перенести ассоциации ваших приложений из стандартного журнала 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:

    [​IMG]

    В примере, я создал собственное приложение .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"

    В том случае, если вы все сделали правильно должно появиться окно, сообщающее о том, что событие было успешно записан в журнал, либо сообщение об ошибки и причины ее появления. Если вы все сделали о данному руководству, проблем возникнуть не должно.


    источник
     
    1 человеку нравится это.
Статус темы:
Закрыта.

Поделиться этой страницей