EventSourceCreationData(String, String) Конструктор
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр EventSourceCreationData класса с указанным источником событий и именем журнала событий.
public:
EventSourceCreationData(System::String ^ source, System::String ^ logName);
public EventSourceCreationData(string? source, string logName);
public EventSourceCreationData(string source, string logName);
new System.Diagnostics.EventSourceCreationData : string * string -> System.Diagnostics.EventSourceCreationData
Public Sub New (source As String, logName As String)
Параметры
- source
- String
Имя для регистрации в журнале событий в качестве источника записей.
- logName
- String
Имя журнала, в который записываются записи из источника.
Примеры
В следующем примере кода определяется, зарегистрирован ли источник SampleApplicationSource событий на локальном компьютере. Если источник событий не существует, в примере задается файл ресурса сообщения для источника и создается новый источник события. Наконец, в примере кода задается локализованное отображаемое имя для журнала событий, используя значение DisplayNameMsgId идентификатора ресурса и путь к файлу ресурса.messageFile
static void CreateEventSourceSample1(string messageFile)
{
string myLogName;
string sourceName = "SampleApplicationSource";
// Create the event source if it does not exist.
if(!EventLog.SourceExists(sourceName))
{
// Create a new event source for the custom event log
// named "myNewLog."
myLogName = "myNewLog";
EventSourceCreationData mySourceData = new EventSourceCreationData(sourceName, myLogName);
// Set the message resource file that the event source references.
// All event resource identifiers correspond to text in this file.
if (!System.IO.File.Exists(messageFile))
{
Console.WriteLine("Input message resource file does not exist - {0}",
messageFile);
messageFile = "";
}
else
{
// Set the specified file as the resource
// file for message text, category text, and
// message parameter strings.
mySourceData.MessageResourceFile = messageFile;
mySourceData.CategoryResourceFile = messageFile;
mySourceData.CategoryCount = CategoryCount;
mySourceData.ParameterResourceFile = messageFile;
Console.WriteLine("Event source message resource file set to {0}",
messageFile);
}
Console.WriteLine("Registering new source for event log.");
EventLog.CreateEventSource(mySourceData);
}
else
{
// Get the event log corresponding to the existing source.
myLogName = EventLog.LogNameFromSourceName(sourceName,".");
}
// Register the localized name of the event log.
// For example, the actual name of the event log is "myNewLog," but
// the event log name displayed in the Event Viewer might be
// "Sample Application Log" or some other application-specific
// text.
EventLog myEventLog = new EventLog(myLogName, ".", sourceName);
if (messageFile.Length > 0)
{
myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId);
}
}
Public Shared Sub CreateEventSourceSample1(ByVal messageFile As String)
Dim myLogName As String
Dim sourceName As String = "SampleApplicationSource"
' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)
' Create a new event source for the custom event log
' named "myNewLog."
myLogName = "myNewLog"
Dim mySourceData As EventSourceCreationData = New EventSourceCreationData(sourceName, myLogName)
' Set the message resource file that the event source references.
' All event resource identifiers correspond to text in this file.
If Not System.IO.File.Exists(messageFile)
Console.WriteLine("Input message resource file does not exist - {0}", _
messageFile)
messageFile = ""
Else
' Set the specified file as the resource
' file for message text, category text and
' message parameters strings.
mySourceData.MessageResourceFile = messageFile
mySourceData.CategoryResourceFile = messageFile
mySourceData.CategoryCount = CategoryCount
mySourceData.ParameterResourceFile = messageFile
Console.WriteLine("Event source message resource file set to {0}", _
messageFile)
End If
Console.WriteLine("Registering new source for event log.")
EventLog.CreateEventSource(mySourceData)
Else
' Get the event log corresponding to the existing source.
myLogName = EventLog.LogNameFromSourceName(sourceName,".")
End If
' Register the localized name of the event log.
' For example, the actual name of the event log is "myNewLog," but
' the event log name displayed in the Event Viewer might be
' "Sample Application Log" or some other application-specific
' text.
Dim myEventLog As EventLog = New EventLog(myLogName, ".", sourceName)
If messageFile.Length > 0
myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId)
End If
End Sub
В примере кода используется следующий текстовый файл сообщения, встроенный в библиотеку ресурсов 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
.
Комментарии
Чтобы записать записи в журнал событий, необходимо сначала создать источник событий для журнала событий. Чтобы зарегистрировать новый источник, инициализировать EventSourceCreationData экземпляр, настройте свойства экземпляра для приложения и вызовите EventLog.CreateEventSource(EventSourceCreationData) метод. После регистрации источника можно записывать записи из источника с помощью WriteEvent методов или WriteEntry методов.
Вы можете зарегистрировать источник событий с локализованными ресурсами для категории событий и строк сообщений. Приложение может записывать записи журнала событий с помощью идентификаторов ресурсов, а не указывать фактическую строку. Средство просмотра событий использует идентификатор ресурса для поиска и отображения соответствующей строки из локализованного файла ресурсов на основе текущих параметров языка. Вы можете зарегистрировать отдельный файл для категорий событий, сообщений и строк вставки параметров или зарегистрировать один и тот же файл ресурсов для всех трех типов строк. CategoryCountИспользуйте свойства и CategoryResourceFileMessageResourceFileParameterResourceFile свойства, чтобы настроить источник для записи локализованных записей в журнал событий. Если приложение записывает строковые значения непосредственно в журнал событий, вам не нужно задавать эти свойства.
Источник должен быть настроен для записи локализованных записей или для записи прямых строк. Если приложение записывает записи с помощью идентификаторов ресурсов и строковых значений, необходимо зарегистрировать два отдельных источника. Например, настройте один источник с файлами ресурсов, а затем используйте этот источник в методе WriteEvent для записи записей с помощью идентификаторов ресурсов в журнал событий. Затем создайте другой источник без файлов ресурсов и используйте этот источник в методе WriteEntry для записи строк непосредственно в журнал событий.
В следующей таблице показаны начальные значения свойств для объекта EventSourceCreationData.
| Недвижимость | Начальное значение |
|---|---|
| Source | Параметр source . |
| LogName | Параметр logName . |
| MachineName | Локальный компьютер ("."). |
| CategoryCount | Ноль |
| CategoryResourceFile |
null (Nothing в Visual Basic). |
| MessageResourceFile |
null (Nothing в Visual Basic). |
| ParameterResourceFile |
null (Nothing в Visual Basic). |