Данная статья переведена автоматически. Наведите указатель мыши на предложения статьи, чтобы просмотреть исходный текст. Дополнительные сведения.
Перевод
Текст оригинала
Информация
Запрошенная вами тема показана ниже. Однако эта тема не включена в библиотеку.

EventLog - класс

Обеспечивает взаимодействие с журналами событий Windows.

Пространство имен:  System.Diagnostics
Сборка:  System (в System.dll)

public class EventLog : Component, ISupportInitialize

Тип EventLog предоставляет следующие члены.

  ИмяОписание
Открытый методEventLog()Инициализирует новый экземпляр класса EventLog. Не связывает экземпляр с каким-либо журналом.
Открытый методEventLog(String)Инициализирует новый экземпляр класса EventLog. Связывает экземпляр с журналом на локальном компьютере.
Открытый методEventLog(String, String)Инициализирует новый экземпляр класса EventLog. Связывает экземпляр с журналом на указанном компьютере.
Открытый методEventLog(String, String, String)Инициализирует новый экземпляр класса EventLog. Связывает экземпляр с журналом на указанном компьютере и создает или присваивает заданный источник классу EventLog.
В начало страницы

  ИмяОписание
Защищенное свойствоCanRaiseEventsВозвращает значение, показывающее, может ли компонент вызывать событие. (Унаследовано от Component.)
Открытое свойствоContainerВозвращает контейнер IContainer, содержащий компонент Component. (Унаследовано от Component.)
Защищенное свойствоDesignModeВозвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время. (Унаследовано от Component.)
Открытое свойствоEnableRaisingEventsВозвращает или задает значение, определяющее, получает ли класс EventLog уведомления о событии EntryWritten.
Открытое свойствоEntriesВозвращает содержимое журнала событий.
Защищенное свойствоEventsВозвращает список обработчиков событий, которые прикреплены к этому объекту Component. (Унаследовано от Component.)
Открытое свойствоLogВозвращает или задает имя журнала, из которого производится чтение или запись.
Открытое свойствоLogDisplayNameВозвращает понятное имя журнала событий.
Открытое свойствоMachineNameВозвращает или задает имя компьютера, на котором производится чтение или запись событий.
Открытое свойствоMaximumKilobytesВозвращает или устанавливает максимальный размер журнала событий в килобайтах.
Открытое свойствоMinimumRetentionDaysВозвращает количество дней, которое записи хранятся в журнале событий.
Открытое свойствоOverflowActionВозвращает поведение при переполнении для хранения новых записей, когда файл журнала событий достигает максимального размера.
Открытое свойствоSiteПолучает или задает экземпляр ISite для компонента Component. (Унаследовано от Component.)
Открытое свойствоSourceВозвращает или задает имя источника, регистрируемого в журнале и используемого при записи в журнал событий.
Открытое свойствоSynchronizingObjectВозвращает или задает объект, используемый для маршалинга вызовов обработчика событий, возникающих в результате записи события в EventLog.
В начало страницы

  ИмяОписание
Открытый методBeginInitНачинает инициализацию класса EventLog, используемого в форме или другим компонентом. Инициализация происходит во время выполнения.
Открытый методClearУдаляет все записи из журнала событий.
Открытый методCloseЗакрывает журнал событий и удаляет дескрипторы чтения и записи.
Открытый методСтатический членCreateEventSource(EventSourceCreationData)Задает допустимый источник событий для записи локализованных сообщений о событиях, используя указанные свойства конфигурации источника событий и соответствующий журнал событий.
Открытый методСтатический членCreateEventSource(String, String)Задает указанное имя источника в качестве допустимого источника событий для внесения записей в журнал на локальном компьютере. Используя этот метод, можно также создать новый пользовательский журнал на локальном компьютере.
Открытый методСтатический членCreateEventSource(String, String, String) Устарело. Устанавливает заданное имяисточника в качестве допустимого источника событий для внесения записей в журнал на указанном компьютере. Этот метод можно также использовать для создания нового пользовательского журнала на заданном компьютере.
Открытый методCreateObjRefСоздает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом. (Унаследовано от MarshalByRefObject.)
Открытый методСтатический членDelete(String)Удаляет журнал событий с локального компьютера.
Открытый методСтатический членDelete(String, String)Удаляет журнал событий с указанного компьютера.
Открытый методСтатический членDeleteEventSource(String)Удаляет регистрацию источника событий из журнала событий на локальном компьютере.
Открытый методСтатический членDeleteEventSource(String, String)Удаляет регистрацию источника событий приложения с указанного компьютера.
Открытый методDispose()Освобождает все ресурсы, используемые объектом Component. (Унаследовано от Component.)
Защищенный методDispose(Boolean)Освобождает неуправляемые (а при необходимости и управляемые) ресурсы, используемые объектом EventLog. (Переопределяет Component.Dispose(Boolean).)
Открытый методEndInitЗавершает инициализацию класса EventLog, используемого в форме или другим компонентом. Инициализация происходит во время выполнения.
Открытый методEquals(Object)Определяет, равен ли заданный объект текущему объекту. (Унаследовано от Object.)
Открытый методСтатический членExists(String)Определяет наличие журнала на локальном компьютере.
Открытый методСтатический членExists(String, String)Определяет наличие журнала на заданном компьютере.
Защищенный методFinalizeОсвобождает неуправляемые ресурсы и выполняет другие операции очистки, перед тем как объект Component будет удален при сборке мусора. (Унаследовано от Component.)
Открытый методСтатический членGetEventLogs()Выполняет поиск всех журналов событий на локальном компьютере и создает массив объектов EventLog, содержащих список.
Открытый методСтатический членGetEventLogs(String)Выполняет поиск всех журналов событий на заданном компьютере и создает массив объектов EventLog, содержащих список.
Открытый методGetHashCode Играет роль хэш-функции для определённого типа.
(Унаследовано от Object.)
Открытый методGetLifetimeServiceИзвлекает объект обслуживания во время существования, который управляет политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.)
Защищенный методGetServiceВозвращает объект, представляющий службу, обеспечиваемую компонентом Component или его контейнером Container. (Унаследовано от Component.)
Открытый методGetType Возвращает объект класса Type для текущего экземпляра. (Унаследовано от Object.)
Открытый методInitializeLifetimeServiceВозвращает объект обслуживания во время существования для управления политикой времени существования данного экземпляра. (Унаследовано от MarshalByRefObject.)
Открытый методСтатический членLogNameFromSourceNameВозвращает имя журнала, в котором зарегистрирован указанный источник.
Защищенный методMemberwiseClone() Создает "плоскую" копию текущего объекта. (Унаследовано от Object.)
Защищенный методMemberwiseClone(Boolean)Создает неполную копию текущего объекта MarshalByRefObject. (Унаследовано от MarshalByRefObject.)
Открытый методModifyOverflowPolicyИзменяет поведение при внесении новых записей, когда файл журнала событий достигает максимального размера.
Открытый методRegisterDisplayNameОпределяет локализованное имя для журнала событий, которое отображается в "Просмотре событий" сервера.
Открытый методСтатический членSourceExists(String)Определяет, зарегистрирован ли источник событий на локальном компьютере.
Открытый методСтатический членSourceExists(String, String)Определяет, зарегистрирован ли источник событий на указанном компьютере.
Открытый методToStringВозвращает строку String, содержащую имя компонента Component, если таковое имеется. Этот метод не следует переопределять. (Унаследовано от Component.)
Открытый методWriteEntry(String)Вносит в журнал событий запись сведений с заданным текстом сообщения.
Открытый методWriteEntry(String, EventLogEntryType)Вносит в журнал событий следующие записи с заданным текстом сообщения: ошибка, предупреждение, сведения, аудит отказов или аудит успехов.
Открытый методСтатический членWriteEntry(String, String)Вносит в журнал событий запись сведений с заданным текстом сообщения, используя указанный зарегистрированный источник.
Открытый методWriteEntry(String, EventLogEntryType, Int32)Вносит в журнал событий запись с заданным текстом сообщения и идентификатором события, который определяется приложением.
Открытый методСтатический членWriteEntry(String, String, EventLogEntryType)Вносит в журнал событий, используя указанный зарегистрированный источник, следующие записи с заданным текстом сообщения: ошибка, предупреждение, сведения, аудит отказов или аудит успехов.
Открытый методWriteEntry(String, EventLogEntryType, Int32, Int16)Вносит в журнал событий запись с заданным текстом сообщения, идентификатором события и категорией, которая определяется приложением.
Открытый методСтатический членWriteEntry(String, String, EventLogEntryType, Int32)Вносит в журнал событий запись с заданным текстом сообщения и идентификатором события (который определяется приложением), используя указанный зарегистрированный источник событий.
Открытый методWriteEntry(String, EventLogEntryType, Int32, Int16, Byte[])Вносит в журнал событий запись с заданным текстом сообщения, идентификатором события и категорией (которые определяются приложением), а затем добавляет в сообщение двоичные данные.
Открытый методСтатический членWriteEntry(String, String, EventLogEntryType, Int32, Int16)Вносит в журнал событий запись с заданным текстом сообщения и идентификатором события и категорией (которые определяется приложением), используя указанный зарегистрированный источник событий. С помощью category осуществляется фильтрация событий журнала в "Просмотре событий".
Открытый методСтатический членWriteEntry(String, String, EventLogEntryType, Int32, Int16, Byte[])Вносит в журнал событий запись с заданным текстом сообщения, идентификатором события и категорией (которые определяются приложением), используя указанный зарегистрированный источник событий, а затем добавляет в сообщение двоичные данные.
Открытый методWriteEvent(EventInstance, Object[])Вносит локализованные записи в журнал событий.
Открытый методWriteEvent(EventInstance, Byte[], Object[])Заносит записи журнала событий с данными события, строками замещения сообщения и связанными двоичными данными.
Открытый методСтатический членWriteEvent(String, EventInstance, Object[])Вносит в журнал событий запись с заданными данными сообщения и строками замещения сообщения, используя указанный зарегистрированный источник событий.
Открытый методСтатический членWriteEvent(String, EventInstance, Byte[], Object[])Вносит в журнал событий запись с заданными данными сообщения, строками замещения сообщения и связанными двоичными данными, используя указанный зарегистрированный источник событий.
В начало страницы

  ИмяОписание
Открытое событиеDisposedПроисходит при удалении компонента вызовом метода Dispose. (Унаследовано от Component.)
Открытое событиеEntryWrittenПроисходит при внесении записи в журнал событий на локальном компьютере.
В начало страницы

Класс EventLog позволяет осуществлять доступ к журналам событий Windows, в которые записываются сведения о важных событиях, связанных с оборудованием и программным обеспечением, и настройку этих журналов. С помощью класса EventLog можно считывать и записывать данные в журналы, создавать и удалять источники событий, а также удалять журналы и отвечать на записи журнала. Можно также создавать одновременно с источником событий новые журналы.

ПримечаниеПримечание

Если свойство Source для журнала событий, связанного с экземпляром EventLog, не существует, создается новый источник событий. Для создания источника событий в Windows Vista и в более поздних версиях или в Windows Server 2003 необходимо иметь привилегии администратора.

Причиной этого требования послужило то, что для определения уникальности источника событий необходимо осуществить поиск по всем журналам событий, включая журналы безопасности. Начиная с Windows Vista, пользователи не имеют разрешения на доступ к журналу безопасности; поэтому вызывается исключение SecurityException.

Начиная с Windows Vista, привилегии пользователя определяются контролем учетных записей. Члену встроенной группы "Администраторы" присваивается два маркера доступа на время выполнения: маркер доступа обычного пользователя и маркер доступа администратора. По умолчанию назначена роль обычного пользователя. Для выполнения кода, осуществляющего доступ к журналу безопасности, необходимо сначала повысить свои привилегии от обычного пользователя до администратора. Это можно сделать при запуске приложения, щелкнув правой кнопкой мыши его значок и указав, что приложение должно выполняться от имени администратора.

Важное примечаниеВажно

При создании объекта EventLog, и внесении записи, передача объекта EventLog частично доверенному коду может создать проблему безопасности. Никогда не передавайте какие либо объекты журнала событий менее доверенному коду, включая объекты EventLogEntry и EventLogEntryCollection.

Важное примечаниеВажно

В версиях 1.0 и 1.1 платформы .NET Framework этот класс требует, чтобы модули немедленного вызова имели полное доверие. В версии 2.0 этот класс для определенных действий требует EventLogPermission. Настоятельно рекомендуется, чтобы EventLogPermission не предоставлялся частично доверенному коду. Возможность считывать и записывать журнал событий позволяет коду выполнять действия, такие как помещение сообщений журнала событий в имя другого приложения.

Важное примечаниеВажно

Создание или удаление источника событий требует синхронизации лежащего в основе кода при помощи именованного мьютекса. Если приложение с обширными правами доступа блокирует именованный мьютекс, попытки создать или удалить источник событий приводит к зависанию приложения, до тех пор, пока не снята блокировка. Во избежание этой проблемы, никогда не предоставляйте разрешение UnmanagedCode ненадежному коду. Кроме того, разрешение UnmanagedCode потенциально позволяет игнорировать другие разрешения, и поэтому его следует предоставлять только самому надежному коду.

Чтобы прочесть журнал, нужно указать имена свойств Log и MachineName (имя сервера) для класса EventLog. При этом нет необходимости указывать свойство Source, поскольку источник требуется только для записи в журнал. Элемент Entries автоматически заполняется списком записей журнала событий.

ПримечаниеПримечание

Свойство MachineName задавать не нужно, если при подключении к журналу указывается пара свойств Log / MachineName. Если свойство MachineName не задано, то по умолчанию используется локальный компьютер (".").

При записи в журнал событий необходимо указать или создать свойство Source. Для создания нового источника событий необходимо обладать правами администратора на компьютере. Source регистрирует используемое приложение в журнале событий в качестве допустимого источника записей. С помощью свойства Source можно одновременно вести запись только в один журнал. Свойство Source может быть любой строкой, однако это имя должно отличаться от имен других источников, находящихся на компьютере. Обычно именем источника является имя приложения или другая идентифицирующая строка. Создание дубликата значения Source выдаст исключение. Однако один журнал событий может быть связан с несколькими источниками.

ПримечаниеПримечание

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

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

ПримечаниеПримечание

Журнал безопасности доступен только для чтения.

Используйте WriteEvent и WriteEntry для записи событий в журнал событий. Для записи событий необходимо задать источник события. Перед внесением первой записи с источника необходимо создать и настроить источник события.

Создайте новый источник событий при установке приложения. Благодаря этому операционная система успевает обновить свой список зарегистрированных источников событий и их конфигурацию. Если список источников событий в системе не обновился и предпринимается попытка записать событие с новым источником, возникнет ошибка выполнения операции записи. Новый источник можно настроить, используя EventLogInstaller или метод CreateEventSource. Для создания нового источника событий необходимо обладать правами администратора на компьютере.

Каждый источник за раз может выполнить запись только в один журнал событий, однако приложение может использовать несколько источников для записи нескольких журналов событий. Например, приложению может потребоваться несколько источников, настроенных для различных журналов событий или различных файлов ресурсов. Чтобы изменить настройки существующего источника, необходимо удалить источник и затем создать его с новыми настройками. Если другие приложения или компоненты используют существующий источник, перед удалением существующего источника, создайте новый источник с обновленными настройками.

Источник событий с локализованными ресурсами можно зарегистрировать для категории событий и строк сообщения. Для внесения записей в журнал событий в приложении вместо указания фактических значений строк используются идентификаторы ресурсов. Дополнительные сведения о настройке источника с файлами ресурсов см. в описании классов EventLogInstaller и EventSourceCreationData.

Если приложение записывает значения строк напрямую в журнал событий, нет необходимости устанавливать свойства файла ресурса для источника. Необходимо настроить источник для записи либо локализованных, либо исходных строк. Если при создании записей приложение одновременно использует идентификаторы ресурсов и строковые значения, необходимо зарегистрировать два отдельных источника. Например, настройте один источник с файлами ресурсов, а затем воспользуйтесь им в методе WriteEvent для создания записей в журнале событий с использованием идентификаторов ресурсов. Затем создайте другой источник, без файлов ресурсов, и используйте его в методе WriteEntry для непосредственной записи строк в журнал событий.

При записи событий, необходимо хотя бы определить или строку сообщения или идентификатор ресурса для строки сообщения. Остальные свойства события являются необязательными. Необязательные параметры события включают: можно установить EventLogEntryType для определения значка, который будет отображать "Просмотр событий", можно определить категорию идентификатора для события, если приложение использует категории для фильтра событий, также к записи события можно прикрепить двоичные данные, если данным событием необходимо связать дополнительную информацию.

Класс EventLog предоставляет доступ как к отдельным журналам событий и их записям, так и к коллекции журналов событий. Чтобы удалить журнал, получить список журналов, создать или удалить источник, а также определить наличие в компьютере указанного источника, используются элементы staticEventLog.

По умолчанию доступны три журнала: журнал приложения, журнал системы и журнал безопасности. Другие приложения и службы, например, служба каталогов Active Directory, могут иметь дополнительные журналы событий. Для создания настраиваемого журнала событий можно воспользоваться классом EventLog и "Просмотром событий" сервера. Для отображения локализованного имени для журнала событий в "Просмотре событий" используйте метод RegisterDisplayName. Для настройки поведения журнала событий при достижении максимального размера, используйте метод ModifyOverflowPolicy.

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

Список исходных значений свойств для экземпляра класса EventLog см. в описании конструктора EventLog.

Примечание для платформы : Журналы событий не поддерживаются в Windows 98 или Windows Millennium Edition (Me).

В следующем примере создается источник MySource (если он уже не существует) и в журнал событий MyNewLog делается запись.

ПримечаниеПримечание

Начиная с Windows Vista, необходимо запускать это приложение от имени администратора.


using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource"))
        {
             //An event log source should not be created and immediately used.
             //There is a latency time to enable the source, it should be created
             //prior to executing the application that uses the source.
             //Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatedEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.");

    }
}
   


.NET Framework

Поддерживается в версиях: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework (клиентский профиль)

Поддерживается в версиях: 4, 3.5 с пакетом обновления 1 (SP1)

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista с пакетом обновления 2 (SP2), Windows Server 2008 (роль основных серверных компонентов не поддерживается), Windows Server 2008 R2 (роль основных серверных компонентов поддерживается в пакете обновления 1 (SP1) или выше; системы на базе Itanium не поддерживаются)

Среда .NET Framework поддерживает не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Любые открытые static (Shared в Visual Basic) члены этого типа являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

Добавления сообщества

Показ:
© 2015 Microsoft