EventLog.WriteEvent EventLog.WriteEvent EventLog.WriteEvent EventLog.WriteEvent Method

定義

ローカライズされたイベント エントリをイベント ログに書き込みます。Writes a localized event entry to the event log.

オーバーロード

WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[])

指定した登録イベント ソースを使用して、指定したイベント データとメッセージ置換文字列と共にイベント ログ エントリを書き込みます。Writes an event log entry with the given event data and message replacement strings, using the specified registered event source.

WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[])

ローカライズされたエントリをイベント ログに書き込みます。Writes a localized entry to the event log.

WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[])

指定したイベント データ、メッセージ置換文字列、および関連するバイナリ データと共にイベント ログ エントリを書き込みます。Writes an event log entry with the given event data, message replacement strings, and associated binary data.

WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[])

指定した登録イベント ソースを使用して、指定したイベント データ、メッセージ置換文字列、および関連するバイナリ データと共にイベント ログ エントリを書き込みます。Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source.

WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[]) WriteEvent(String, EventInstance, Object[])

指定した登録イベント ソースを使用して、指定したイベント データとメッセージ置換文字列と共にイベント ログ エントリを書き込みます。Writes an event log entry with the given event data and message replacement strings, using the specified registered event source.

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 String String String

指定したコンピューター上のアプリケーションに登録されるイベント ソースの名前。The name of the event source registered for the application on the specified computer.

instance
EventInstance EventInstance EventInstance EventInstance

ローカライズされたイベント ログ エントリを表す EventInstance インスタンス。An EventInstance instance that represents a localized event log entry.

values
Object[]

イベント ログ エントリのメッセージ テキストにマージする文字列の配列。An array of strings to merge into the message text of the event log entry.

例外

source 値が空の文字列 ("") です。The source value is an empty string ("").

または-or- source 値は null です。The source value is null.

または-or- instance.InstanceId が 0 未満であるか、MaxValue を超えています。instance.InstanceId is less than zero or greater than MaxValue.

または-or- values には 256 を超える要素が格納されています。values has more than 256 elements.

または-or- values 要素の 1 つが 32766 バイトを超えています。One of the values elements is longer than 32766 bytes.

または-or- ソース名は、254 文字を超えるレジストリ キーのパスになります。The source name results in a registry key path longer than 254 characters.

イベント ログのレジストリ キーを開けませんでした。The registry key for the event log could not be opened.

イベント エントリをイベント ログに書き込むときにオペレーティング システムからエラーが報告されました。The operating system reported an error when writing the event entry to the event log. Windows のエラー コードは使用できません。A Windows error code is not available.

次の例では、既存のイベント ログに情報イベントのエントリと警告イベント エントリを書き込みます。The following example writes an informational event entry and a warning event entry to an existing event log. リソース ファイル内のリソース識別子を使用してイベントのメッセージ テキストを指定します。The event message text is specified using a resource identifier in a resource file. 例では、対応するリソース ファイルがソースの登録されたと仮定します。The example assumes the corresponding resource file has been registered for the source.

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 = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
   EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
   
   // Insert the method name into the event log message.
   array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
   
   // Write the events to the event log.
   EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
   
   // Append binary data to the warning event entry.
   array<Byte>^binaryData = {7,8,9,10};
   EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

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 リソース ライブラリに組み込まれている次のメッセージのテキスト ファイルを使用します。The example uses the following message text file, built into the resource library EventLogMsgs.dll. メッセージのテキスト ファイルは、メッセージ リソース ファイルの作成元のソースです。A message text file is the source from which the message resource file is created. メッセージのテキスト ファイルでは、リソース識別子とカテゴリ、イベント メッセージ、およびパラメーターの挿入文字列のテキストを定義します。The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

; // 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  
.  

注釈

ローカライズされたエントリを適切なログのイベント ソースとして既に登録されているソースを使用して、イベント ログに書き込むには、このメソッドを使用します。Use this method to write a localized entry to the event log, using a source already registered as an event source for the appropriate log. 文字列値ではなく、リソース識別子では、イベントのプロパティを指定します。You specify the event properties with resource identifiers rather than string values. イベント ビューアーでは、リソース識別子を使用して、ソースのローカライズされたリソース ファイルから対応する文字列を表示します。The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the source. リソース識別子を使用してイベントを記述する前に、対応するリソース ファイルとソースを登録する必要があります。You must register the source with the corresponding resource file before you write events using resource identifiers.

入力instanceインスタンスは、イベント メッセージとプロパティを指定します。The input instance instance specifies the event message and properties. 設定、InstanceIdinstanceソース メッセージ リソース ファイルで定義されたメッセージを入力します。Set the InstanceId of the instance input for the defined message in the source message resource file. 必要に応じて設定することができます、CategoryIdEntryTypeinstanceイベント エントリのカテゴリとイベントの種類を定義する入力。You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. ローカライズされたメッセージ テキストに挿入する言語に依存しない文字列の配列を指定することもできます。You can also specify an array of language-independent strings to insert into the localized message text. 設定valuesnullイベント メッセージに置換文字列の書式設定プレース ホルダーが含まれていない場合。Set values to null if the event message does not contain formatting placeholders for replacement strings.

使用する前に、イベント ログの指定したソースを登録する必要がありますWriteEventします。The specified source must be registered for an event log before using WriteEvent. 指定したソースは、ローカライズされたエントリをログに書き込むように構成する必要があります。ソースには少なくとも必要メッセージ リソース ファイルの定義です。The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

作成し、ソースと最初のエントリを書き込む前に、イベント ソースを構成する必要があります。You must create and configure the event source before writing the first entry with the source. アプリケーションのインストール中に新しいイベント ソースを作成します。Create the new event source during the installation of your application. これにより、登録済みのイベント ソースの一覧とその構成を更新するオペレーティング システムまでの時間です。This allows time for the operating system to refresh its list of registered event sources and their configuration. オペレーティング システムでは、イベントのソースの一覧は更新されていない場合は、書き込み操作は失敗、新しいソースを持つイベントを記述しようとしました。If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. 使用して新しいソースを構成することができます、 EventLogInstaller、またはを使用して、CreateEventSourceメソッド。You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. 新しいイベント ソースを作成するコンピューターの管理者権限が必要です。You must have administrative rights on the computer to create a new event source.

ソースは、ローカライズされたエントリを書き込むか、または直接の文字列を書き込むように構成する必要があります。The source must be configured either for writing localized entries or for writing direct strings. 使用して、WriteEntryメソッドの場合は、アプリケーション イベント ログに直接文字列値を書き込みます。Use the WriteEntry method if your application writes string values directly to the event log.

アプリケーションがリソース識別子と文字列値の両方を使用してエントリを書き込む場合は、2 つの異なるソースを登録する必要があります。If your application writes entries using both resource identifiers and string values, you must register two separate sources. たとえば、リソース ファイルでは、1 つのソースを構成およびでは、そのソースを使用して、WriteEventメソッドをイベント ログのリソース識別子を使用してエントリを書き込みます。For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. リソースのファイルがない場合、別のソースを作成しでそのソースを使用し、WriteEntryそのソースを使用して、イベント ログに直接文字列を書き込みます。Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

セキュリティ

EventLogPermission
コンピューターのイベント ログ情報を書き込む。for writing the event log information on the computer. 関連付けられた列挙体。 WriteAssociated enumeration: Write

こちらもご覧ください

WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[]) WriteEvent(EventInstance, Object[])

ローカライズされたエントリをイベント ログに書き込みます。Writes a localized entry to the event log.

public:
 void WriteEvent(System::Diagnostics::EventInstance ^ instance, ... cli::array <System::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
Public Sub WriteEvent (instance As EventInstance, ParamArray values As Object())

パラメーター

instance
EventInstance EventInstance EventInstance EventInstance

ローカライズされたイベント ログ エントリを表す EventInstance インスタンス。An EventInstance instance that represents a localized event log entry.

values
Object[]

イベント ログ エントリのメッセージ テキストにマージする文字列の配列。An array of strings to merge into the message text of the event log entry.

例外

SourceEventLog プロパティが設定されていません。The Source property of the EventLog has not been set.

または-or- メソッドが新しいイベント ソースを登録しようとしましたが、MachineName のコンピューター名が無効です。The method attempted to register a new event source, but the computer name in MachineName is not valid.

または-or- ソースは既に別のイベント ログに登録されています。The source is already registered for a different event log.

または-or- instance.InstanceId が 0 未満であるか、MaxValue を超えています。instance.InstanceId is less than zero or greater than MaxValue.

または-or- values には 256 を超える要素が格納されています。values has more than 256 elements.

または-or- values 要素の 1 つが 32766 バイトを超えています。One of the values elements is longer than 32766 bytes.

または-or- ソース名は、254 文字を超えるレジストリ キーのパスになります。The source name results in a registry key path longer than 254 characters.

イベント ログのレジストリ キーを開けませんでした。The registry key for the event log could not be opened.

イベント エントリをイベント ログに書き込むときにオペレーティング システムからエラーが報告されました。The operating system reported an error when writing the event entry to the event log. Windows のエラー コードは使用できません。A Windows error code is not available.

次の例は、2 つの監査イベント ログにエントリを書き込みますmyNewLogします。The following example writes two audit entries to the event log myNewLog. ローカル コンピューターに存在しない場合は、例では、新しいイベント ソースおよび新しいイベント ログを作成します。The example creates a new event source and a new event log if they do not exist on the local computer. リソース ファイル内のリソース識別子を使用してイベントのメッセージ テキストを指定します。The event message text is specified using a resource identifier in a resource file.

// 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 = gcnew 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 = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );

// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );

// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );


// 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 リソース ライブラリに組み込まれている次のメッセージのテキスト ファイルを使用します。The example uses the following message text file, built into the resource library EventLogMsgs.dll. メッセージのテキスト ファイルは、メッセージ リソース ファイルの作成元のソースです。A message text file is the source from which the message resource file is created. メッセージのテキスト ファイルでは、リソース識別子とカテゴリ、イベント メッセージ、およびパラメーターの挿入文字列のテキストを定義します。The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

; // 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  
.  

注釈

ローカライズされたエントリをイベント ログに書き込むには、このメソッドを使用します。Use this method to write a localized entry to the event log. 文字列値ではなく、リソース識別子では、イベントのプロパティを指定します。You specify the event properties with resource identifiers rather than string values. イベント ビューアーでは、リソース識別子を使用して、ローカライズされたリソース ファイルから対応する文字列を表示、Sourceします。The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the Source. リソース識別子を使用してイベントを記述する前に、対応するリソース ファイルとソースを登録する必要があります。You must register the source with the corresponding resource file before you write events using resource identifiers.

入力instanceインスタンスは、イベント メッセージとプロパティを指定します。The input instance instance specifies the event message and properties. 設定、InstanceIdinstanceソース メッセージ リソース ファイルで定義されたメッセージを入力します。Set the InstanceId of the instance input for the defined message in the source message resource file. 必要に応じて設定することができます、CategoryIdEntryTypeinstanceイベント エントリのカテゴリとイベントの種類を定義する入力。You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. ローカライズされたメッセージ テキストに挿入する言語に依存しない文字列の配列を指定することもできます。You can also specify an array of language-independent strings to insert into the localized message text. 設定valuesnullイベント メッセージに置換文字列の書式設定プレース ホルダーが含まれていない場合。Set values to null if the event message does not contain formatting placeholders for replacement strings.

設定する必要があります、SourceプロパティをEventLogコンポーネントを使用する前にWriteEventします。You must set the Source property on your EventLog component before using WriteEvent. 指定したソースは、ローカライズされたエントリをログに書き込むように構成する必要があります。ソースには少なくとも必要メッセージ リソース ファイルの定義です。The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

作成し、ソースと最初のエントリを書き込む前に、イベント ソースを構成する必要があります。You must create and configure the event source before writing the first entry with the source. アプリケーションのインストール中に新しいイベント ソースを作成します。Create the new event source during the installation of your application. これにより、登録済みのイベント ソースの一覧とその構成を更新するオペレーティング システムまでの時間です。This allows time for the operating system to refresh its list of registered event sources and their configuration. オペレーティング システムでは、イベントのソースの一覧は更新されていない場合は、書き込み操作は失敗、新しいソースを持つイベントを記述しようとしました。If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. 使用して新しいソースを構成することができます、 EventLogInstaller、またはを使用して、CreateEventSourceメソッド。You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. 新しいイベント ソースを作成するコンピューターの管理者権限が必要です。You must have administrative rights on the computer to create a new event source.

ソースは、ローカライズされたエントリを書き込むか、または直接の文字列を書き込むように構成する必要があります。The source must be configured either for writing localized entries or for writing direct strings. 使用して、WriteEntryメソッドの場合は、アプリケーション イベント ログに直接文字列値を書き込みます。Use the WriteEntry method if your application writes string values directly to the event log.

アプリケーションがリソース識別子と文字列値の両方を使用してエントリを書き込む場合は、2 つの異なるソースを登録する必要があります。If your application writes entries using both resource identifiers and string values, you must register two separate sources. たとえば、リソース ファイルでは、1 つのソースを構成およびでは、そのソースを使用して、WriteEventメソッドをイベント ログのリソース識別子を使用してエントリを書き込みます。For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. リソースのファイルがない場合、別のソースを作成しでそのソースを使用し、WriteEntryそのソースを使用して、イベント ログに直接文字列を書き込みます。Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

注意

リモート コンピューターの値には、エントリを記述するかどうか、message文字列は、リモート コンピューターに .NET Framework が実行されていない場合に期待はない可能性があります。If you write an entry to a remote computer, the value of the message string might not be what you expect if the remote computer is not running the .NET Framework. また、message文字列は、% を含めることはできませんnここで、 n整数値 (たとえば、%1) は、イベント ビューアーは、挿入文字列として扱います。Also, the message string cannot contain %n, where n is an integer value (for example, %1), because the event viewer treats it as an insertion string. 文字のシーケンスをインターネット プロトコル バージョン 6 (IPv6) アドレスはこれを含めることができます、ために、IPv6 アドレスを含むイベント メッセージがログ記録できません。Because an Internet Protocol, version 6 (IPv6) address can contain this character sequence, you cannot log an event message that contains an IPv6 address.

セキュリティ

EventLogPermission
コンピューターのイベント ログ情報を書き込む。for writing the event log information on the computer. 関連付けられた列挙体。 WriteAssociated enumeration: Write

こちらもご覧ください

WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[]) WriteEvent(EventInstance, Byte[], Object[])

指定したイベント データ、メッセージ置換文字列、および関連するバイナリ データと共にイベント ログ エントリを書き込みます。Writes an event log entry with the given event data, message replacement strings, and associated binary data.

public:
 void WriteEvent(System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::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
Public Sub WriteEvent (instance As EventInstance, data As Byte(), ParamArray values As Object())

パラメーター

instance
EventInstance EventInstance EventInstance EventInstance

ローカライズされたイベント ログ エントリを表す EventInstance インスタンス。An EventInstance instance that represents a localized event log entry.

data
Byte[]

エントリに関連付けられているバイナリ データを保持するバイト配列。An array of bytes that holds the binary data associated with the entry.

values
Object[]

イベント ログ エントリのメッセージ テキストにマージする文字列の配列。An array of strings to merge into the message text of the event log entry.

例外

SourceEventLog プロパティが設定されていません。The Source property of the EventLog has not been set.

または-or- メソッドが新しいイベント ソースを登録しようとしましたが、MachineName のコンピューター名が無効です。The method attempted to register a new event source, but the computer name in MachineName is not valid.

または-or- ソースは既に別のイベント ログに登録されています。The source is already registered for a different event log.

または-or- instance.InstanceId が 0 未満であるか、MaxValue を超えています。instance.InstanceId is less than zero or greater than MaxValue.

または-or- values には 256 を超える要素が格納されています。values has more than 256 elements.

または-or- values 要素の 1 つが 32766 バイトを超えています。One of the values elements is longer than 32766 bytes.

または-or- ソース名は、254 文字を超えるレジストリ キーのパスになります。The source name results in a registry key path longer than 254 characters.

イベント ログのレジストリ キーを開けませんでした。The registry key for the event log could not be opened.

イベント エントリをイベント ログに書き込むときにオペレーティング システムからエラーが報告されました。The operating system reported an error when writing the event entry to the event log. Windows のエラー コードは使用できません。A Windows error code is not available.

次の例は、2 つの監査イベント ログにエントリを書き込みますmyNewLogします。The following example writes two audit entries to the event log myNewLog. ローカル コンピューターに存在しない場合は、例では、新しいイベント ソースおよび新しいイベント ログを作成します。The example creates a new event source and a new event log if they do not exist on the local computer. リソース ファイル内のリソース識別子を使用してイベントのメッセージ テキストを指定します。The event message text is specified using a resource identifier in a resource file.

// 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 = gcnew 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 = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );

// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );

// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );


// 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 リソース ライブラリに組み込まれている次のメッセージのテキスト ファイルを使用します。The example uses the following message text file, built into the resource library EventLogMsgs.dll. メッセージのテキスト ファイルは、メッセージ リソース ファイルの作成元のソースです。A message text file is the source from which the message resource file is created. メッセージのテキスト ファイルでは、リソース識別子とカテゴリ、イベント メッセージ、およびパラメーターの挿入文字列のテキストを定義します。The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

; // 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  
.  

注釈

このメソッドを使用すると、イベント ログに追加のイベントに固有のデータのローカライズされたエントリを記述できます。Use this method to write a localized entry with additional event-specific data to the event log. 文字列値ではなく、リソース識別子では、イベントのプロパティを指定します。You specify the event properties with resource identifiers rather than string values. イベント ビューアーでは、リソース識別子を使用して、ローカライズされたリソース ファイルから対応する文字列を表示、Sourceします。The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the Source. リソース識別子を使用してイベントを記述する前に、対応するリソース ファイルとソースを登録する必要があります。You must register the source with the corresponding resource file before you write events using resource identifiers.

入力instanceインスタンスは、イベント メッセージとプロパティを指定します。The input instance instance specifies the event message and properties. 設定、InstanceIdinstanceソース メッセージ リソース ファイルで定義されたメッセージを入力します。Set the InstanceId of the instance input for the defined message in the source message resource file. 必要に応じて設定することができます、CategoryIdEntryTypeinstanceイベント エントリのカテゴリとイベントの種類を定義する入力。You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. ローカライズされたメッセージ テキストに挿入する言語に依存しない文字列の配列を指定することもできます。You can also specify an array of language-independent strings to insert into the localized message text. 設定valuesnullイベント メッセージに置換文字列の書式設定プレース ホルダーが含まれていない場合。Set values to null if the event message does not contain formatting placeholders for replacement strings.

イベントのイベントの追加の詳細を提供する必要がある場合に、バイナリ データを指定します。Specify binary data with an event when it is necessary to provide additional details for the event. たとえば、使用して、dataパラメーターは、特定のエラーに関する情報を含めます。For example, use the data parameter to include information on a specific error. イベント ビューアーでは、関連付けられたイベント データを解釈しません16 進数およびテキストを組み合わせた形式でデータを表示します。The Event Viewer does not interpret the associated event data; it displays the data in a combined hexadecimal and text format. イベントに固有のデータを多用します。役に立つことを確認する場合にのみ含めます。Use event-specific data sparingly; include it only if you are sure it will be useful. イベント ビューアーとは無関係に、アプリケーションが処理できる情報を格納するのにイベントに固有のデータを使用することもできます。You can also use event-specific data to store information the application can process independently of the Event Viewer. たとえば、具体的には、イベントのビューアーを記述したり、イベント ログをスキャンし、イベントに固有のデータから情報を含むレポートを作成するプログラムを記述します。For example, you could write a viewer specifically for your events, or write a program that scans the event log and creates reports that include information from the event-specific data.

設定する必要があります、SourceプロパティをEventLogコンポーネントを使用する前にコンポーネントの前にWriteEventします。You must set the Source property on your EventLog component before component before using WriteEvent. 指定したソースは、ローカライズされたエントリをログに書き込むように構成する必要があります。ソースには少なくとも必要メッセージ リソース ファイルの定義です。The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

作成し、ソースと最初のエントリを書き込む前に、イベント ソースを構成する必要があります。You must create and configure the event source before writing the first entry with the source. アプリケーションのインストール中に新しいイベント ソースを作成します。Create the new event source during the installation of your application. これにより、登録済みのイベント ソースの一覧とその構成を更新するオペレーティング システムまでの時間です。This allows time for the operating system to refresh its list of registered event sources and their configuration. オペレーティング システムでは、イベントのソースの一覧は更新されていない場合は、書き込み操作は失敗、新しいソースを持つイベントを記述しようとしました。If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. 使用して新しいソースを構成することができます、 EventLogInstaller、またはを使用して、CreateEventSourceメソッド。You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. 新しいイベント ソースを作成するコンピューターの管理者権限が必要です。You must have administrative rights on the computer to create a new event source.

注意

指定しない場合、MachineNameEventLogインスタンスを呼び出す前にWriteEvent、ローカル コンピューター (".") と見なされます。If you do not specify a MachineName for your EventLog instance before you call WriteEvent, the local computer (".") is assumed.

ソースは、ローカライズされたエントリを書き込むか、または直接の文字列を書き込むように構成する必要があります。The source must be configured either for writing localized entries or for writing direct strings. 使用して、WriteEntryメソッドの場合は、アプリケーション イベント ログに直接文字列値を書き込みます。Use the WriteEntry method if your application writes string values directly to the event log.

アプリケーションがリソース識別子と文字列値の両方を使用してエントリを書き込む場合は、2 つの異なるソースを登録する必要があります。If your application writes entries using both resource identifiers and string values, you must register two separate sources. たとえば、リソース ファイルでは、1 つのソースを構成およびでは、そのソースを使用して、WriteEventメソッドをイベント ログのリソース識別子を使用してエントリを書き込みます。For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. リソースのファイルがない場合、別のソースを作成しでそのソースを使用し、WriteEntryそのソースを使用して、イベント ログに直接文字列を書き込みます。Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

注意

リモート コンピューターの値には、エントリを記述するかどうか、message文字列は、リモート コンピューターに .NET Framework が実行されていない場合に期待はない可能性があります。If you write an entry to a remote computer, the value of the message string might not be what you expect if the remote computer is not running the .NET Framework. また、message文字列は、% を含めることはできませんnここで、 n整数値 (たとえば、%1) は、イベント ビューアーは、挿入文字列として扱います。Also, the message string cannot contain %n, where n is an integer value (for example, %1), because the event viewer treats it as an insertion string. 文字のシーケンスをインターネット プロトコル バージョン 6 (IPv6) アドレスはこれを含めることができます、ために、IPv6 アドレスを含むイベント メッセージがログ記録できません。Because an Internet Protocol, version 6 (IPv6) address can contain this character sequence, you cannot log an event message that contains an IPv6 address.

セキュリティ

EventLogPermission
コンピューターのイベント ログ情報を書き込む。for writing the event log information on the computer. 関連付けられた列挙体。 WriteAssociated enumeration: Write

こちらもご覧ください

WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[]) WriteEvent(String, EventInstance, Byte[], Object[])

指定した登録イベント ソースを使用して、指定したイベント データ、メッセージ置換文字列、および関連するバイナリ データと共にイベント ログ エントリを書き込みます。Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source.

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 String String String

指定したコンピューター上のアプリケーションに登録されるイベント ソースの名前。The name of the event source registered for the application on the specified computer.

instance
EventInstance EventInstance EventInstance EventInstance

ローカライズされたイベント ログ エントリを表す EventInstance インスタンス。An EventInstance instance that represents a localized event log entry.

data
Byte[]

エントリに関連付けられているバイナリ データを保持するバイト配列。An array of bytes that holds the binary data associated with the entry.

values
Object[]

イベント ログ エントリのメッセージ テキストにマージする文字列の配列。An array of strings to merge into the message text of the event log entry.

例外

source 値が空の文字列 ("") です。The source value is an empty string ("").

または-or- source 値は null です。The source value is null.

または-or- instance.InstanceId が 0 未満であるか、MaxValue を超えています。instance.InstanceId is less than zero or greater than MaxValue.

または-or- values には 256 を超える要素が格納されています。values has more than 256 elements.

または-or- values 要素の 1 つが 32766 バイトを超えています。One of the values elements is longer than 32766 bytes.

または-or- ソース名は、254 文字を超えるレジストリ キーのパスになります。The source name results in a registry key path longer than 254 characters.

イベント ログのレジストリ キーを開けませんでした。The registry key for the event log could not be opened.

イベント エントリをイベント ログに書き込むときにオペレーティング システムからエラーが報告されました。The operating system reported an error when writing the event entry to the event log. Windows のエラー コードは使用できません。A Windows error code is not available.

次の例では、既存のイベント ログに情報イベントのエントリと警告イベント エントリを書き込みます。The following example writes an informational event entry and a warning event entry to an existing event log. リソース ファイル内のリソース識別子を使用してイベントのメッセージ テキストを指定します。The event message text is specified using a resource identifier in a resource file. 例では、対応するリソース ファイルがソースの登録されたと仮定します。The example assumes the corresponding resource file has been registered for the source.

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 = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
   EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
   
   // Insert the method name into the event log message.
   array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
   
   // Write the events to the event log.
   EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
   
   // Append binary data to the warning event entry.
   array<Byte>^binaryData = {7,8,9,10};
   EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

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 リソース ライブラリに組み込まれている次のメッセージのテキスト ファイルを使用します。The example uses the following message text file, built into the resource library EventLogMsgs.dll. メッセージのテキスト ファイルは、メッセージ リソース ファイルの作成元のソースです。A message text file is the source from which the message resource file is created. メッセージのテキスト ファイルでは、リソース識別子とカテゴリ、イベント メッセージ、およびパラメーターの挿入文字列のテキストを定義します。The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings.

; // 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  
.  

注釈

このメソッドを使用すると、適切なログのイベント ソースとして既に登録されているソースを使用して、イベント ログに追加のイベントに固有のデータのローカライズされたエントリを記述できます。Use this method to write a localized entry with additional event-specific data to the event log, using a source already registered as an event source for the appropriate log. 文字列値ではなく、リソース識別子では、イベントのプロパティを指定します。You specify the event properties with resource identifiers rather than string values. イベント ビューアーでは、リソース識別子を使用して、ソースのローカライズされたリソース ファイルから対応する文字列を表示します。The Event Viewer uses the resource identifiers to display the corresponding strings from the localized resource file for the source. リソース識別子を使用してイベントを記述する前に、対応するリソース ファイルとソースを登録する必要があります。You must register the source with the corresponding resource file before you write events using resource identifiers.

入力instanceインスタンスは、イベント メッセージとプロパティを指定します。The input instance instance specifies the event message and properties. 設定、InstanceIdinstanceソース メッセージ リソース ファイルで定義されたメッセージを入力します。Set the InstanceId of the instance input for the defined message in the source message resource file. 必要に応じて設定することができます、CategoryIdEntryTypeinstanceイベント エントリのカテゴリとイベントの種類を定義する入力。You can optionally set the CategoryId and EntryType of the instance input to define the category and event type of your event entry. ローカライズされたメッセージ テキストに挿入する言語に依存しない文字列の配列を指定することもできます。You can also specify an array of language-independent strings to insert into the localized message text. 設定valuesnullイベント メッセージに置換文字列の書式設定プレース ホルダーが含まれていない場合。Set values to null if the event message does not contain formatting placeholders for replacement strings.

イベントのイベントの追加の詳細を提供する必要がある場合に、バイナリ データを指定します。Specify binary data with an event when it is necessary to provide additional details for the event. たとえば、使用して、dataパラメーターは、特定のエラーに関する情報を含めます。For example, use the data parameter to include information on a specific error. イベント ビューアーでは、関連付けられたイベント データを解釈しません16 進数およびテキストを組み合わせた形式でデータを表示します。The Event Viewer does not interpret the associated event data; it displays the data in a combined hexadecimal and text format. イベントに固有のデータを多用します。役に立つことを確認する場合にのみ含めます。Use event-specific data sparingly; include it only if you are sure it will be useful. イベント ビューアーとは無関係に、アプリケーションが処理できる情報を格納するのにイベントに固有のデータを使用することもできます。You can also use event-specific data to store information the application can process independently of the Event Viewer. たとえば、具体的には、イベントのビューアーを記述したり、イベント ログをスキャンし、イベントに固有のデータから情報を含むレポートを作成するプログラムを記述します。For example, you could write a viewer specifically for your events, or write a program that scans the event log and creates reports that include information from the event-specific data.

使用する前に、イベント ログの指定したソースを登録する必要がありますWriteEventします。The specified source must be registered for an event log before using WriteEvent. 指定したソースは、ローカライズされたエントリをログに書き込むように構成する必要があります。ソースには少なくとも必要メッセージ リソース ファイルの定義です。The specified source must be configured for writing localized entries to the log; the source must at minimum have a message resource file defined.

作成し、ソースと最初のエントリを書き込む前に、イベント ソースを構成する必要があります。You must create and configure the event source before writing the first entry with the source. アプリケーションのインストール中に新しいイベント ソースを作成します。Create the new event source during the installation of your application. これにより、登録済みのイベント ソースの一覧とその構成を更新するオペレーティング システムまでの時間です。This allows time for the operating system to refresh its list of registered event sources and their configuration. オペレーティング システムでは、イベントのソースの一覧は更新されていない場合は、書き込み操作は失敗、新しいソースを持つイベントを記述しようとしました。If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. 使用して新しいソースを構成することができます、 EventLogInstaller、またはを使用して、CreateEventSourceメソッド。You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. 新しいイベント ソースを作成するコンピューターの管理者権限が必要です。You must have administrative rights on the computer to create a new event source.

ソースは、ローカライズされたエントリを書き込むか、または直接の文字列を書き込むように構成する必要があります。The source must be configured either for writing localized entries or for writing direct strings. 使用して、WriteEntryメソッドの場合は、アプリケーション イベント ログに直接文字列値を書き込みます。Use the WriteEntry method if your application writes string values directly to the event log.

アプリケーションがリソース識別子と文字列値の両方を使用してエントリを書き込む場合は、2 つの異なるソースを登録する必要があります。If your application writes entries using both resource identifiers and string values, you must register two separate sources. たとえば、リソース ファイルでは、1 つのソースを構成およびでは、そのソースを使用して、WriteEventメソッドをイベント ログのリソース識別子を使用してエントリを書き込みます。For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. リソースのファイルがない場合、別のソースを作成しでそのソースを使用し、WriteEntryそのソースを使用して、イベント ログに直接文字列を書き込みます。Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

セキュリティ

EventLogPermission
コンピューターのイベント ログ情報を書き込む。for writing the event log information on the computer. 関連付けられた列挙体。 WriteAssociated enumeration: Write

こちらもご覧ください

適用対象