Знакомство с компонентом EventLog
Обновлен: Ноябрь 2007
Запись событий в Microsoft Windows предоставляет стандартный, централизованный метод записи приложениями основных событий, происходящих в программной среде и устройствах компьютера. При возникновении ошибки системный администратор или специалист службы технической поддержки должны определить причину ошибки, попытаться восстановить потерянные данные и предотвратить повторение ошибки. В таких случаях очень полезными оказываются сделанные приложениями, операционной системой или другими системными службами записи об основных событиях, таких как недостаток памяти или неудачная попытка доступа к диску. Системный администратор может использовать журнал событий для определения условий, вызвавших ошибку, и контекста, в котором она произошла.
Windows предоставляет стандартный пользовательский интерфейс для просмотра журналов событий и программируемый интерфейс для исследования их записей. В Microsoft Visual Basic версии 6.0 число операций записи в некоторые журналы было ограничено, к тому же чтение и взаимодействие с записями было затруднено.
Используя компонент EventLog, можно легко открыть журнал событий на локальном или удаленном компьютере и добавлять записи в этот журнал. Кроме того, можно читать записи в существующих журналах и создавать собственные журналы событий.
Помимо добавления записей в журнал событий и чтения существующих записей, с помощью обозревателя серверов можно просматривать список журналов событий для любого доступного сервера. Для отображения списка существующих в данный момент журналов и записанных в них событий можно развернуть узел Журналы событий в обозревателе серверов. Выбранный журнал событий можно перетащить из обозревателя серверов в конструктор и создать экземпляр компонента EventLog, свойства которого будут автоматически ориентированны на выбранный журнал.
Примечание. |
---|
Для извлечения списка всех журналов событий на компьютере можно использовать метод GetEventLogs. |
Примечание. |
---|
Существуют ограничения на использование журналов событий, связанные с безопасностью. Дополнительные сведения см. в разделе Ветви журналов событий в системе безопасности. |
Основные понятия журнала событий Windows
Событие, по определению Windows, — это любое значительное происшествие в операционной системе или приложении, о котором следует сообщить пользователю. Уведомления о критических событиях посылаются пользователю в форме сообщений, немедленно выводящихся на экран. Остальные уведомления о событиях записываются в один из нескольких журналов событий, которые хранят информацию для будущего использования. Каждая запись журнала событий подпадает под одну из следующих категорий: ошибки, предупреждения, информация, успешный аудит и неудачный аудит.
По умолчанию в системах Windows 2000 или Windows NT 4.0 предусмотрено три журнала событий:
системный журнал, который отслеживает события, происходящие с компонентами системы (например, проблемы с драйвером);
журнал безопасности, который отслеживает изменения в системе безопасности и ее возможные нарушения;
журнал приложений, который отслеживает события, возникающие в зарегистрированных приложениях.
Кроме этих журналов другие программы, например служба каталогов Active Directory, могут по умолчанию создавать свои собственные журналы. Можно также создать свой собственный журнал, используя языковые компоненты пространства имен System.Diagnostics.
Записи, занесенные в журнал событий, связаны с определенным источником. Создание нового источника происходит до записи в журнал событий. Для настройки нового источника можно воспользоваться объектом EventLogInstaller или методом CreateEventSource. Для создания нового источника событий необходимо иметь на компьютере права администратора. Источник событий с локализованными ресурсами можно зарегистрировать для категории событий и строк сообщения. Для внесения записей в журнал событий в приложении вместо указания фактических значений строк используются идентификаторы ресурсов. Дополнительные сведения о настройке источника с файлами ресурсов см. в описании классов EventLogInstaller и EventSourceCreationData.
Выбор событий для занесения в журнал
Ниже приведены примеры ситуаций, в которых запись событий может быть полезной.
Недостаток ресурсов. Если приложению не хватает памяти (из-за ошибки кода или просто недостатка памяти), что ухудшает его работу, запись предупреждающего события о невозможности распределить память может указать на причину сбоя.
Информационные события. Серверные приложения (такие как сервер базы данных) записывают пользователей, которые входят в систему, открывают базу или пересылают файлы. Сервер также может записывать сообщения о возникающих ошибках (нет доступа к файлу, произошло отсоединение от хоста и т. д.), повреждениях базы данных или о том, что пересылка файла была удачной.
При записи событий в журнал используются такие ресурсы, как дисковое пространство и время процессора. Количество места на диске, которое требуется журналу событий, и дополнительные издержки для приложения, которое записывает события, зависят от того, какой объем информации необходимо записать. Поэтому следует записывать только действительно важные сведения. Также лучше размещать процедуру вызова журнала событий в той части кода, которая отвечает за обработку ошибок, а не в главной части, чтобы она не замедляла работу программы.
См. также
Задачи
Пошаговое руководство. Работа с журналами событий, источниками событий и записями
Основные понятия
Справочные сведения о журналах событий
Программная архитектура компонента EventLog