EventLog.EntryWritten イベント
ローカル コンピュータ上のイベント ログにエントリが書き込まれたときに発生します。
Public Event EntryWritten As EntryWrittenEventHandler
[C#]
public event EntryWrittenEventHandler EntryWritten;
[C++]
public: __event EntryWrittenEventHandler* EntryWritten;
[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。
イベント データ
イベント ハンドラが、このイベントに関連するデータを含む、EntryWrittenEventArgs 型の引数を受け取りました。次の EntryWrittenEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 説明 |
---|---|
Entry | ログに書き込まれたイベント ログ エントリを取得します。 |
解説
イベント通知を取得するには、 EnableRaisingEvents を true に設定する必要があります。ローカル コンピュータ上にエントリが書き込まれたときだけ、イベント通知を受け取ることができます。リモート コンピュータ上の書き込まれたエントリに対する通知を受け取ることはできません。
EntryWritten デリゲートを作成する場合は、イベントを処理するメソッドを識別します。イベントをイベント ハンドラに関連付けるには、デリゲートのインスタンスをイベントに追加します。デリゲートを削除しない限り、イベントが発生するたびにイベント ハンドラが呼び出されます。デリゲートを使用したイベント処理の詳細については、「 イベントの利用 」を参照してください。
システムは、直前の書き込みイベントが少なくとも 5 秒前に発生した場合にだけ、 WriteEntry に応答します。つまり、イベント ログの変更が 5 秒間に複数回発生した場合でも、 EntryWritten イベント通知を受信する回数は 1 回だけです。 WriteEntry 呼び出しの間に十分に長いスリープ間隔 (約 10 秒) を挿入すると、イベントが失われません。ただし、これよりも頻繁に書き込みイベントが発生する場合は、最新の書き込みイベントが失われることがあります。
使用例
[Visual Basic, C#, C++] エントリ書き込みイベントを処理する例を次に示します。
Option Explicit On
Option Strict On
Imports System
Imports System.Diagnostics
Imports System.Threading
Class MySample
' This member is used to wait for events.
Private Shared signal As AutoResetEvent
Public Shared Sub Main()
Dim myNewLog As New EventLog()
myNewLog.Log = "MyCustomLog"
AddHandler myNewLog.EntryWritten, AddressOf MyOnEntryWritten
myNewLog.EnableRaisingEvents = True
signal = New AutoResetEvent(False)
signal.WaitOne()
End Sub ' Main
Public Shared Sub MyOnEntryWritten(ByVal [source] As Object, ByVal e As EntryWrittenEventArgs)
signal.Set()
End Sub ' MyOnEntryWritten
End Class ' MySample
[C#]
using System;
using System.Diagnostics;
using System.Threading;
class MySample{
// This member is used to wait for events.
static AutoResetEvent signal;
public static void Main(){
EventLog myNewLog = new EventLog();
myNewLog.Log = "MyCustomLog";
myNewLog.EntryWritten += new EntryWrittenEventHandler(MyOnEntryWritten);
myNewLog.EnableRaisingEvents = true;
signal = new AutoResetEvent(false);
signal.WaitOne();
}
public static void MyOnEntryWritten(object source, EntryWrittenEventArgs e){
signal.Set();
}
}
[C++]
#using <mscorlib.dll>
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
__gc class MySample{
// This member is used to wait for events.
static AutoResetEvent* signal;
public:
static void main(){
EventLog* myNewLog = new EventLog();
myNewLog->Log = S"MyCustomLog";
myNewLog->EntryWritten += new EntryWrittenEventHandler(0, MyOnEntryWritten);
myNewLog->EnableRaisingEvents = true;
signal = new AutoResetEvent(false);
signal->WaitOne();
}
static void MyOnEntryWritten(Object* /*source*/, EntryWrittenEventArgs* /*e*/){
signal->Set();
}
};
int main()
{
MySample::main();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- EventLogPermission (コンピュータ上のイベント ログ情報を参照するのに必要なアクセス許可)
- SecurityPermission (完全信頼を指定して EventLog のメンバを呼び出すためのアクセス許可) PermissionState.Unrestricted (関連する列挙体)
参照
EventLog クラス | EventLog メンバ | System.Diagnostics 名前空間 | EnableRaisingEvents