EventLog.WriteEvent Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Записывает локализованную запись события в журнал событий.
Перегрузки
| Имя | Описание |
|---|---|
| WriteEvent(String, EventInstance, Object[]) |
Записывает запись журнала событий с заданными данными события и строками замены сообщений, используя указанный зарегистрированный источник событий. |
| WriteEvent(EventInstance, Object[]) |
Записывает локализованную запись в журнал событий. |
| WriteEvent(EventInstance, Byte[], Object[]) |
Записывает запись журнала событий с заданными данными события, строками замены сообщений и связанными двоичными данными. |
| WriteEvent(String, EventInstance, Byte[], Object[]) |
Записывает запись журнала событий с заданными данными события, строками замены сообщений и связанными двоичными данными и указанным зарегистрированным источником событий. |
WriteEvent(String, EventInstance, Object[])
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
Записывает запись журнала событий с заданными данными события и строками замены сообщений, используя указанный зарегистрированный источник событий.
public:
static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent(string source, System.Diagnostics.EventInstance instance, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, ParamArray values As Object())
Параметры
- source
- String
Имя источника событий, зарегистрированного для приложения на указанном компьютере.
- instance
- EventInstance
Экземпляр EventInstance , представляющий локализованную запись журнала событий.
- values
- Object[]
Массив строк для слияния с текстом сообщения записи журнала событий.
Исключения
Значение source является пустой строкой ("").
–или–
Значение source равно null.
–или–
instance.InstanceId меньше нуля или больше UInt16.MaxValue.
–или–
values имеет более 256 элементов.
–или–
Один из values элементов превышает 32766 байт.
–или–
Имя источника приводит к тому, что путь к разделу реестра превышает 254 символов.
instance равно null.
Не удалось открыть раздел реестра для журнала событий.
Операционная система сообщила об ошибке при записи записи записи события в журнал событий. Код ошибки Windows недоступен.
Примеры
В следующем примере записывается информационная запись события и запись события предупреждения в существующий журнал событий. Текст сообщения о событии указывается с помощью идентификатора ресурса в файле ресурса. В примере предполагается, что соответствующий файл ресурса зарегистрирован для источника.
string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{
// Define an informational event and a warning event.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myInfoEvent = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information);
EventInstance myWarningEvent = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample2"};
// Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent);
// Append binary data to the warning event entry.
byte [] binaryData = { 7, 8, 9, 10 };
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings);
}
else
{
Console.WriteLine("Warning - event source {0} not registered",
sourceName);
}
Dim sourceName As String = "SampleApplicationSource"
If EventLog.SourceExists(sourceName)
' Define an informational event and a warning event.
' The message identifiers correspond to the message text in the
' message resource file defined for the source.
Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}
' Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)
' Append binary data to the warning event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
Else
Console.WriteLine("Warning - event source {0} not registered", _
sourceName)
End If
В примере используется следующий текстовый файл сообщения, встроенный в библиотеку ресурсов EventLogMsgs.dll. Текстовый файл сообщения — это источник, из которого создается файл ресурса сообщения. Текстовый файл сообщения определяет идентификаторы ресурсов и текст для категорий, сообщений о событии и строк вставки параметров.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Комментарии
Используйте этот метод для записи локализованной записи в журнал событий, используя источник, уже зарегистрированный в качестве источника событий для соответствующего журнала. Свойства события указываются с идентификаторами ресурсов, а не строковыми значениями. Средство просмотра событий использует идентификаторы ресурсов для отображения соответствующих строк из локализованного файла ресурсов для источника. Перед записью событий с помощью идентификаторов ресурсов необходимо зарегистрировать источник в соответствующем файле ресурса.
Входной instance экземпляр задает сообщение и свойства события.
InstanceId
instance Задайте входные данные для определенного сообщения в файле ресурса исходного сообщения. При необходимости можно задать CategoryId и EntryType входные instance данные, чтобы определить категорию и тип события записи события. Можно также указать массив строк, независимых от языка, для вставки в локализованный текст сообщения.
null Установите значение, values если сообщение о событии не содержит заполнители форматирования для строк замены.
Указанный источник должен быть зарегистрирован для журнала событий перед использованием WriteEvent. Указанный источник должен быть настроен для записи локализованных записей в журнал; Источник должен иметь как минимум файл ресурса сообщения.
Перед записью первой записи с исходным кодом необходимо создать и настроить источник событий. Создайте новый источник событий во время установки приложения. Это позволяет операционной системе обновлять список зарегистрированных источников событий и их конфигурацию. Если операционная система не обновила свой список источников событий и попытается написать событие с новым источником, операция записи завершится ошибкой. Вы можете настроить новый источник с помощью EventLogInstallerметода или использовать CreateEventSource его. Для создания нового источника событий необходимо иметь права администратора на компьютере.
Источник должен быть настроен для записи локализованных записей или для записи прямых строк. Используйте метод, WriteEntry если приложение записывает строковые значения непосредственно в журнал событий.
Если приложение записывает записи с помощью идентификаторов ресурсов и строковых значений, необходимо зарегистрировать два отдельных источника. Например, настройте один источник с файлами ресурсов, а затем используйте этот источник в методе WriteEvent для записи записей с помощью идентификаторов ресурсов в журнал событий. Затем создайте другой источник без файлов ресурсов и используйте этот источник в методе WriteEntry для записи строк непосредственно в журнал событий с помощью этого источника.
См. также раздел
Применяется к
WriteEvent(EventInstance, Object[])
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
Записывает локализованную запись в журнал событий.
public:
void WriteEvent(System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
public void WriteEvent(System.Diagnostics.EventInstance instance, params object[] values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent(System.Diagnostics.EventInstance instance, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * obj[] -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.WriteEvent : System.Diagnostics.EventInstance * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, ParamArray values As Object())
Параметры
- instance
- EventInstance
Экземпляр EventInstance , представляющий локализованную запись журнала событий.
- values
- Object[]
Массив строк для слияния с текстом сообщения записи журнала событий.
- Атрибуты
Исключения
Свойство Source не EventLog задано.
–или–
Метод попытался зарегистрировать новый источник событий, но имя компьютера недопустимо MachineName .
–или–
Источник уже зарегистрирован для другого журнала событий.
–или–
instance.InstanceId меньше нуля или больше UInt16.MaxValue.
–или–
values имеет более 256 элементов.
–или–
Один из values элементов превышает 32766 байт.
–или–
Имя источника приводит к тому, что путь к разделу реестра превышает 254 символов.
instance равно null.
Не удалось открыть раздел реестра для журнала событий.
Операционная система сообщила об ошибке при записи записи записи события в журнал событий. Код ошибки Windows недоступен.
Примеры
В следующем примере записываются две записи аудита в журнал myNewLogсобытий. В примере создается новый источник событий и новый журнал событий, если они не существуют на локальном компьютере. Текст сообщения о событии указывается с помощью идентификатора ресурса в файле ресурса.
// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
// Call a local method to register the event log source
// for the event log "myNewLog." Use the resource file
// EventLogMsgs.dll in the current directory for message text.
string messageFile = String.Format("{0}\\{1}",
System.Environment.CurrentDirectory,
"EventLogMsgs.dll");
CreateEventSourceSample1(messageFile);
}
// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");
EventLog myEventLog = new EventLog(myLogName, ".", sourceName);
// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample1"};
// Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings);
// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings);
Dim sourceName As String = "SampleApplicationSource"
' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)
' Call a local method to register the event log source
' for the event log "myNewLog." Use the resource file
' EventLogMsgs.dll in the current directory for message text.
Dim messageFile As String = String.Format("{0}\\{1}", _
System.Environment.CurrentDirectory, _
"EventLogMsgs.dll")
CreateEventSourceSample1(messageFile)
End If
' Get the event log corresponding to the existing source.
Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")
Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)
' Define two audit events.
Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}
' Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)
' Append binary data to the audit failure event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)
В примере используется следующий текстовый файл сообщения, встроенный в библиотеку ресурсов EventLogMsgs.dll. Текстовый файл сообщения — это источник, из которого создается файл ресурса сообщения. Текстовый файл сообщения определяет идентификаторы ресурсов и текст для категорий, сообщений о событии и строк вставки параметров.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Комментарии
Используйте этот метод для записи локализованной записи в журнал событий. Свойства события указываются с идентификаторами ресурсов, а не строковыми значениями. Средство просмотра событий использует идентификаторы ресурсов для отображения соответствующих строк из локализованного файла ресурсов.Source Перед записью событий с помощью идентификаторов ресурсов необходимо зарегистрировать источник в соответствующем файле ресурса.
Входной instance экземпляр задает сообщение и свойства события.
InstanceId
instance Задайте входные данные для определенного сообщения в файле ресурса исходного сообщения. При необходимости можно задать CategoryId и EntryType входные instance данные, чтобы определить категорию и тип события записи события. Можно также указать массив строк, независимых от языка, для вставки в локализованный текст сообщения.
null Установите значение, values если сообщение о событии не содержит заполнители форматирования для строк замены.
Перед использованием необходимо задать Source свойство для компонентаEventLog.WriteEvent Указанный источник должен быть настроен для записи локализованных записей в журнал; Источник должен иметь как минимум файл ресурса сообщения.
Перед записью первой записи с исходным кодом необходимо создать и настроить источник событий. Создайте новый источник событий во время установки приложения. Это позволяет операционной системе обновлять список зарегистрированных источников событий и их конфигурацию. Если операционная система не обновила свой список источников событий и попытается написать событие с новым источником, операция записи завершится ошибкой. Вы можете настроить новый источник с помощью EventLogInstallerметода или использовать CreateEventSource его. Для создания нового источника событий необходимо иметь права администратора на компьютере.
Источник должен быть настроен для записи локализованных записей или для записи прямых строк. Используйте метод, WriteEntry если приложение записывает строковые значения непосредственно в журнал событий.
Если приложение записывает записи с помощью идентификаторов ресурсов и строковых значений, необходимо зарегистрировать два отдельных источника. Например, настройте один источник с файлами ресурсов, а затем используйте этот источник в методе WriteEvent для записи записей с помощью идентификаторов ресурсов в журнал событий. Затем создайте другой источник без файлов ресурсов и используйте этот источник в методе WriteEntry для записи строк непосредственно в журнал событий с помощью этого источника.
Замечание
Если запись записывается на удаленный компьютер, значение message строки может не быть ожидаемым, если удаленный компьютер не запущен .NET. Кроме того, message строка не может содержать %n, где n является целочисленным значением (например, %1), так как средство просмотра событий обрабатывает его как строку вставки. Так как ip-протокол версии 6 (IPv6) может содержать эту последовательность символов, невозможно записать сообщение о событии, содержащее IPv6-адрес.
См. также раздел
Применяется к
WriteEvent(EventInstance, Byte[], Object[])
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
Записывает запись журнала событий с заданными данными события, строками замены сообщений и связанными двоичными данными.
public:
void WriteEvent(System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
public void WriteEvent(System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent(System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * byte[] * obj[] -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.WriteEvent : System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, data As Byte(), ParamArray values As Object())
Параметры
- instance
- EventInstance
Экземпляр EventInstance , представляющий локализованную запись журнала событий.
- data
- Byte[]
Массив байтов, содержащий двоичные данные, связанные с записью.
- values
- Object[]
Массив строк для слияния с текстом сообщения записи журнала событий.
- Атрибуты
Исключения
Свойство Source не EventLog задано.
–или–
Метод попытался зарегистрировать новый источник событий, но имя компьютера недопустимо MachineName .
–или–
Источник уже зарегистрирован для другого журнала событий.
–или–
instance.InstanceId меньше нуля или больше UInt16.MaxValue.
–или–
values имеет более 256 элементов.
–или–
Один из values элементов превышает 32766 байт.
–или–
Имя источника приводит к тому, что путь к разделу реестра превышает 254 символов.
instance равно null.
Не удалось открыть раздел реестра для журнала событий.
Операционная система сообщила об ошибке при записи записи записи события в журнал событий. Код ошибки Windows недоступен.
Примеры
В следующем примере записываются две записи аудита в журнал myNewLogсобытий. В примере создается новый источник событий и новый журнал событий, если они не существуют на локальном компьютере. Текст сообщения о событии указывается с помощью идентификатора ресурса в файле ресурса.
// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
// Call a local method to register the event log source
// for the event log "myNewLog." Use the resource file
// EventLogMsgs.dll in the current directory for message text.
string messageFile = String.Format("{0}\\{1}",
System.Environment.CurrentDirectory,
"EventLogMsgs.dll");
CreateEventSourceSample1(messageFile);
}
// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");
EventLog myEventLog = new EventLog(myLogName, ".", sourceName);
// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample1"};
// Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings);
// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings);
Dim sourceName As String = "SampleApplicationSource"
' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)
' Call a local method to register the event log source
' for the event log "myNewLog." Use the resource file
' EventLogMsgs.dll in the current directory for message text.
Dim messageFile As String = String.Format("{0}\\{1}", _
System.Environment.CurrentDirectory, _
"EventLogMsgs.dll")
CreateEventSourceSample1(messageFile)
End If
' Get the event log corresponding to the existing source.
Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")
Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)
' Define two audit events.
Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}
' Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)
' Append binary data to the audit failure event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)
В примере используется следующий текстовый файл сообщения, встроенный в библиотеку ресурсов EventLogMsgs.dll. Текстовый файл сообщения — это источник, из которого создается файл ресурса сообщения. Текстовый файл сообщения определяет идентификаторы ресурсов и текст для категорий, сообщений о событии и строк вставки параметров.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Комментарии
Используйте этот метод для записи локализованной записи с дополнительными данными, зависящими от события, в журнал событий. Свойства события указываются с идентификаторами ресурсов, а не строковыми значениями. Средство просмотра событий использует идентификаторы ресурсов для отображения соответствующих строк из локализованного файла ресурсов.Source Перед записью событий с помощью идентификаторов ресурсов необходимо зарегистрировать источник в соответствующем файле ресурса.
Входной instance экземпляр задает сообщение и свойства события.
InstanceId
instance Задайте входные данные для определенного сообщения в файле ресурса исходного сообщения. При необходимости можно задать CategoryId и EntryType входные instance данные, чтобы определить категорию и тип события записи события. Можно также указать массив строк, независимых от языка, для вставки в локализованный текст сообщения.
null Установите значение, values если сообщение о событии не содержит заполнители форматирования для строк замены.
Укажите двоичные данные с событием, если необходимо предоставить дополнительные сведения о событии. Например, используйте data параметр для включения сведений об определенной ошибке. Средство просмотра событий не интерпретирует связанные данные события; он отображает данные в объединенном шестнадцатеричном и текстовом формате. Использование разреженных данных для конкретных событий; включите его только в том случае, если вы уверены, что это будет полезно. Вы также можете использовать данные, относящиеся к событиям, для хранения информации, которую приложение может обрабатывать независимо от средства просмотра событий. Например, можно написать средство просмотра специально для событий или написать программу, которая сканирует журнал событий и создает отчеты, содержащие сведения из данных, относящихся к событиям.
Перед использованием WriteEventкомпонента необходимо задать Source свойство EventLog для компонента. Указанный источник должен быть настроен для записи локализованных записей в журнал; Источник должен иметь как минимум файл ресурса сообщения.
Перед записью первой записи с исходным кодом необходимо создать и настроить источник событий. Создайте новый источник событий во время установки приложения. Это позволяет операционной системе обновлять список зарегистрированных источников событий и их конфигурацию. Если операционная система не обновила свой список источников событий и попытается написать событие с новым источником, операция записи завершится ошибкой. Вы можете настроить новый источник с помощью EventLogInstallerметода или использовать CreateEventSource его. Для создания нового источника событий необходимо иметь права администратора на компьютере.
Замечание
Если перед вызовом MachineNameWriteEventне указан экземплярEventLog, предполагается, что локальный компьютер (".") не указан.
Источник должен быть настроен для записи локализованных записей или для записи прямых строк. Используйте метод, WriteEntry если приложение записывает строковые значения непосредственно в журнал событий.
Если приложение записывает записи с помощью идентификаторов ресурсов и строковых значений, необходимо зарегистрировать два отдельных источника. Например, настройте один источник с файлами ресурсов, а затем используйте этот источник в методе WriteEvent для записи записей с помощью идентификаторов ресурсов в журнал событий. Затем создайте другой источник без файлов ресурсов и используйте этот источник в методе WriteEntry для записи строк непосредственно в журнал событий с помощью этого источника.
Замечание
Если запись записывается на удаленный компьютер, значение message строки может не быть ожидаемым, если удаленный компьютер не запущен .NET Framework. Кроме того, message строка не может содержать %n, где n является целочисленным значением (например, %1), так как средство просмотра событий обрабатывает его как строку вставки. Так как ip-протокол версии 6 (IPv6) может содержать эту последовательность символов, невозможно записать сообщение о событии, содержащее IPv6-адрес.
См. также раздел
Применяется к
WriteEvent(String, EventInstance, Byte[], Object[])
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
- Исходный код:
- EventLog.cs
Записывает запись журнала событий с заданными данными события, строками замены сообщений и связанными двоичными данными и указанным зарегистрированным источником событий.
public:
static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent(string source, System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, data As Byte(), ParamArray values As Object())
Параметры
- source
- String
Имя источника событий, зарегистрированного для приложения на указанном компьютере.
- instance
- EventInstance
Экземпляр EventInstance , представляющий локализованную запись журнала событий.
- data
- Byte[]
Массив байтов, содержащий двоичные данные, связанные с записью.
- values
- Object[]
Массив строк для слияния с текстом сообщения записи журнала событий.
Исключения
Значение source является пустой строкой ("").
–или–
Значение source равно null.
–или–
instance.InstanceId меньше нуля или больше UInt16.MaxValue.
–или–
values имеет более 256 элементов.
–или–
Один из values элементов превышает 32766 байт.
–или–
Имя источника приводит к тому, что путь к разделу реестра превышает 254 символов.
instance равно null.
Не удалось открыть раздел реестра для журнала событий.
Операционная система сообщила об ошибке при записи записи записи события в журнал событий. Код ошибки Windows недоступен.
Примеры
В следующем примере записывается информационная запись события и запись события предупреждения в существующий журнал событий. Текст сообщения о событии указывается с помощью идентификатора ресурса в файле ресурса. В примере предполагается, что соответствующий файл ресурса зарегистрирован для источника.
string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{
// Define an informational event and a warning event.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myInfoEvent = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information);
EventInstance myWarningEvent = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample2"};
// Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent);
// Append binary data to the warning event entry.
byte [] binaryData = { 7, 8, 9, 10 };
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings);
}
else
{
Console.WriteLine("Warning - event source {0} not registered",
sourceName);
}
Dim sourceName As String = "SampleApplicationSource"
If EventLog.SourceExists(sourceName)
' Define an informational event and a warning event.
' The message identifiers correspond to the message text in the
' message resource file defined for the source.
Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}
' Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)
' Append binary data to the warning event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
Else
Console.WriteLine("Warning - event source {0} not registered", _
sourceName)
End If
В примере используется следующий текстовый файл сообщения, встроенный в библиотеку ресурсов EventLogMsgs.dll. Текстовый файл сообщения — это источник, из которого создается файл ресурса сообщения. Текстовый файл сообщения определяет идентификаторы ресурсов и текст для категорий, сообщений о событии и строк вставки параметров.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Комментарии
Используйте этот метод для записи локализованной записи с дополнительными данными для конкретного события в журнал событий, используя источник, уже зарегистрированный в качестве источника событий для соответствующего журнала. Свойства события указываются с идентификаторами ресурсов, а не строковыми значениями. Средство просмотра событий использует идентификаторы ресурсов для отображения соответствующих строк из локализованного файла ресурсов для источника. Перед записью событий с помощью идентификаторов ресурсов необходимо зарегистрировать источник в соответствующем файле ресурса.
Входной instance экземпляр задает сообщение и свойства события.
InstanceId
instance Задайте входные данные для определенного сообщения в файле ресурса исходного сообщения. При необходимости можно задать CategoryId и EntryType входные instance данные, чтобы определить категорию и тип события записи события. Можно также указать массив строк, независимых от языка, для вставки в локализованный текст сообщения.
null Установите значение, values если сообщение о событии не содержит заполнители форматирования для строк замены.
Укажите двоичные данные с событием, если необходимо предоставить дополнительные сведения о событии. Например, используйте data параметр для включения сведений об определенной ошибке. Средство просмотра событий не интерпретирует связанные данные события; он отображает данные в объединенном шестнадцатеричном и текстовом формате. Использование разреженных данных для конкретных событий; включите его только в том случае, если вы уверены, что это будет полезно. Вы также можете использовать данные, относящиеся к событиям, для хранения информации, которую приложение может обрабатывать независимо от средства просмотра событий. Например, можно написать средство просмотра специально для событий или написать программу, которая сканирует журнал событий и создает отчеты, содержащие сведения из данных, относящихся к событиям.
Указанный источник должен быть зарегистрирован для журнала событий перед использованием WriteEvent. Указанный источник должен быть настроен для записи локализованных записей в журнал; Источник должен иметь как минимум файл ресурса сообщения.
Перед записью первой записи с исходным кодом необходимо создать и настроить источник событий. Создайте новый источник событий во время установки приложения. Это позволяет операционной системе обновлять список зарегистрированных источников событий и их конфигурацию. Если операционная система не обновила свой список источников событий и попытается написать событие с новым источником, операция записи завершится ошибкой. Вы можете настроить новый источник с помощью EventLogInstallerметода или использовать CreateEventSource его. Для создания нового источника событий необходимо иметь права администратора на компьютере.
Источник должен быть настроен для записи локализованных записей или для записи прямых строк. Используйте метод, WriteEntry если приложение записывает строковые значения непосредственно в журнал событий.
Если приложение записывает записи с помощью идентификаторов ресурсов и строковых значений, необходимо зарегистрировать два отдельных источника. Например, настройте один источник с файлами ресурсов, а затем используйте этот источник в методе WriteEvent для записи записей с помощью идентификаторов ресурсов в журнал событий. Затем создайте другой источник без файлов ресурсов и используйте этот источник в методе WriteEntry для записи строк непосредственно в журнал событий с помощью этого источника.