共用方式為


EventInstance 建構函式

定義

使用語言中立的資訊初始化該類別的新實例 EventInstance ,以定義事件日誌條目。

多載

名稱 Description
EventInstance(Int64, Int32)

使用指定的資源識別碼初始化該類別的實例 EventInstance ,用於本地化訊息及事件條目的類別文字。

EventInstance(Int64, Int32, EventLogEntryType)

使用指定的資源識別碼初始化該類別的新實例 EventInstance ,該類別識別碼用於事件條目的本地化訊息與類別文字,以及指定的事件日誌條目類型。

EventInstance(Int64, Int32)

來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs

使用指定的資源識別碼初始化該類別的實例 EventInstance ,用於本地化訊息及事件條目的類別文字。

public:
 EventInstance(long instanceId, int categoryId);
public EventInstance(long instanceId, int categoryId);
new System.Diagnostics.EventInstance : int64 * int -> System.Diagnostics.EventInstance
Public Sub New (instanceId As Long, categoryId As Integer)

參數

instanceId
Int64

一個資源識別碼,對應於事件來源訊息資源檔中定義的字串。

categoryId
Int32

資源識別碼對應事件來源類別資源檔中定義的字串,或為零以指定事件不屬於類別。

例外狀況

參數 instanceId 為負值或大於 UInt32.MaxValue 的值。

-或-

參數 categoryId 為負值或大於 UInt16.MaxValue 的值。

範例

以下程式碼範例寫入一個資訊事件條目,然後重複使用該 EventInstance 條目,將警告事件的條目寫入現有事件日誌。 事件訊息文字是透過訊息資源檔案中的資源識別碼來指定。 程式碼範例假設對應的訊息資源檔已註冊為來源。


// Ensure that the source has already been registered using
// EventLogInstaller or EventLog.CreateEventSource.

string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{
    // Define an informational event with no category.
    // The message identifier corresponds to the message text in the
    // message resource file defined for the source.
    EventInstance myEvent = new EventInstance(UpdateCycleCompleteMsgId, 0);

    // Write the event to the event log using the registered source.
    EventLog.WriteEvent(sourceName, myEvent);

    // Reuse the event data instance for another event entry.
    // Set the entry category and message identifiers for
    // the appropriate resource identifiers in the resource files
    // for the registered source.  Set the event type to Warning.

    myEvent.CategoryId = RefreshCategoryMsgId;
    myEvent.EntryType = EventLogEntryType.Warning;
    myEvent.InstanceId = ServerConnectionDownMsgId;

    // Write the event to the event log using the registered source.
    // Insert the machine name into the event message text.
    EventLog.WriteEvent(sourceName, myEvent, Environment.MachineName);
}
else
{
    Console.WriteLine("Warning - event source {0} not registered",
        sourceName);
}
' Ensure that the source has already been registered using
' EventLogInstaller or EventLog.CreateEventSource.
Dim sourceName as String = "SampleApplicationSource"
If EventLog.SourceExists(sourceName)
    
    ' Define an informational event with no category.
    ' The message identifier corresponds to the message text in the
    ' message resource file defined for the source.
    Dim myEvent As EventInstance = New EventInstance(UpdateCycleCompleteMsgId, 0)
    ' Write the event to the event log using the registered source.
    EventLog.WriteEvent(sourceName, myEvent)

    ' Reuse the event data instance for another event entry.
    ' Set the entry category and message identifiers for
    ' the appropriate resource identifiers in the resource files
    ' for the registered source.  Set the event type to Warning.

    myEvent.CategoryId = RefreshCategoryMsgId
    myEvent.EntryType = EventLogEntryType.Warning
    myEvent.InstanceId = ServerConnectionDownMsgId

    ' Write the event to the event log using the registered source.
    ' Insert the machine name into the event message text.
    EventLog.WriteEvent(sourceName, myEvent, Environment.MachineName)

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
.

備註

要寫入事件日誌的資訊條目,先初始化 並 EventInstance 傳遞給方法 WriteEvent 。 在對應MessageResourceFile的原始屬性中,將 設定instanceId為事件訊息的資源識別碼。 將 設 categoryId 為數值類別值,或在來源屬性中 CategoryResourceFile 事件類別的資源識別碼;若無事件類別,則 categoryId 將 設為零。 EntryType新實例的屬性預設為 。Information

事件檢視器使用資源識別碼來顯示來源在地化資源檔案中的對應字串。 你必須先用對應的資源檔案註冊原始碼,才能使用資源識別碼寫入事件。

另請參閱

適用於

EventInstance(Int64, Int32, EventLogEntryType)

來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs
來源:
EventData.cs

使用指定的資源識別碼初始化該類別的新實例 EventInstance ,該類別識別碼用於事件條目的本地化訊息與類別文字,以及指定的事件日誌條目類型。

public:
 EventInstance(long instanceId, int categoryId, System::Diagnostics::EventLogEntryType entryType);
public EventInstance(long instanceId, int categoryId, System.Diagnostics.EventLogEntryType entryType);
new System.Diagnostics.EventInstance : int64 * int * System.Diagnostics.EventLogEntryType -> System.Diagnostics.EventInstance
Public Sub New (instanceId As Long, categoryId As Integer, entryType As EventLogEntryType)

參數

instanceId
Int64

一個資源識別碼,對應於事件來源訊息資源檔中定義的字串。

categoryId
Int32

資源識別碼對應事件來源類別資源檔中定義的字串,或為零以指定事件不屬於類別。

entryType
EventLogEntryType

一個 EventLogEntryType 表示事件類型的值。

例外狀況

entryType 不是一個有效的 EventLogEntryType 值。

instanceId 是負值或大於 UInt32.MaxValue 的值。

-或-

categoryId 是負值或大於 UInt16.MaxValue 的值。

範例

以下程式碼範例將兩個審計事件項目寫入事件日誌 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
.

備註

要寫入事件日誌,先初始化 並 EventInstance 傳給 WriteEvent 該方法。 在對應MessageResourceFile的原始屬性中,將 設定instanceId為事件訊息的資源識別碼。 將 設 categoryId 為數值類別值,或在來源屬性中 CategoryResourceFile 事件類別的資源識別碼;若無事件類別,則 categoryId 將 設為零。

事件檢視器使用資源識別碼來顯示來源在地化資源檔案中的對應字串。 你必須先用對應的資源檔案註冊原始碼,才能使用資源識別碼寫入事件。

將 設 entryType 為預設的輸入類型之一。 事件檢視器會利用事件類型來決定在事件日誌的清單檢視中顯示哪個圖示。

另請參閱

適用於