EventLog コンポーネントのイベント ハンドラを作成して、このログにエントリが書き込まれると自動的にプロシージャが呼び出されるように設定できます。EventLog コンポーネントのインスタンスのイベント ハンドラを作成する方法はいくつかありますが、最も簡単なのは、ほとんどの構文を Visual Studio に自動生成させる方法です。デザイナで EventLog コンポーネントをダブルクリックすると、Visual Studio にコード エディタが表示され、イベント ハンドラ、およびイベント ハンドラによって呼び出される空白プロシージャが作成されます。次に、EntryWritten イベント ハンドラ内で発生させる処理を入力します。
イベント ハンドラの詳細については、「イベントの処理と発生」を参照してください。
EntryWritten イベントの既定のハンドラを作成するには
-
デザイナで、ハンドラを作成する EventLog コンポーネントをダブルクリックします。
メモ |
|---|
| コード エディタが表示され、2 つの項目がコードに追加されます。1 つはデリゲートを作成および登録し、プロシージャを呼び出すハンドラです。もう 1 つは EntryWritten イベントの空白プロシージャです。 |
-
EntryWritten イベントの空白プロシージャでは、このイベントが呼び出されたときにエントリを受け取って処理するコードを定義します。コードは次のようになります。
Private Sub EventLog1_EntryWritten(ByVal sender As System.Object, ByVal e As System.Diagnostics.EntryWrittenEventArgs) Handles EventLog1.EntryWritten
If e.Entry.Source = "MyApplication" Then
Console.WriteLine("Entry written by my app. Message: " & _
e.Entry.Message)
Else
Console.WriteLine("Entry written by another application. ")
End If
End Sub
private void eventLog1_EntryWritten(object sender, System.Diagnostics.EntryWrittenEventArgs e)
{
if (e.Entry.Source == "MyApplication")
Console.WriteLine("Entry written by my application. Message: "
+ e.Entry.Message);
else
Console.WriteLine("Entry was written by another application.");
}
private void eventLog1_EntryWritten(System.Object sender,
System.Diagnostics.EntryWrittenEventArgs e)
{
if ( e.get_Entry().get_Source() == "MyApplication" )
{
Console.WriteLine("Entry written by my application. Message: "
+ e.get_Entry().get_Message());
}
else
{
Console.WriteLine("Entry was written by another application.");
}
}
-
EnableRaisingEvents プロパティを true に設定します。
プログラムでハンドラを作成するには
-
AddHandler メソッドを使用して、EntryWrittenEventHandler 型のイベント ハンドラを作成します。このイベント ハンドラでは、ログにエントリが書き込まれるときに eventLog1_EntryWritten メソッドを呼び出します。コードは、次のようになります。
Public Sub method5()
AddHandler EventLog1.EntryWritten, _
New System.Diagnostics.EntryWrittenEventHandler( _
AddressOf Me.EventLog1_EntryWritten)
this.eventLog1.EntryWritten += new
System.Diagnostics.EntryWrittenEventHandler(
this.eventLog1_EntryWritten);
this.eventLog1.add_EntryWritten(new
System.Diagnostics.EntryWrittenEventHandler(
this.eventLog1_EntryWritten));
-
EntryWritten プロシージャを作成し、エントリを処理するコードを定義します。
-
EnableRaisingEvents プロパティを true に設定します。
参照