EventLog.EntryWritten 事件
向本地计算机上的事件日志写入项时发生。
**命名空间:**System.Diagnostics
**程序集:**System(在 system.dll 中)
语法
声明
Public Event EntryWritten As EntryWrittenEventHandler
用法
Dim instance As EventLog
Dim handler As EntryWrittenEventHandler
AddHandler instance.EntryWritten, handler
public event EntryWrittenEventHandler EntryWritten
public:
event EntryWrittenEventHandler^ EntryWritten {
void add (EntryWrittenEventHandler^ value);
void remove (EntryWrittenEventHandler^ value);
}
/** @event */
public void add_EntryWritten (EntryWrittenEventHandler value)
/** @event */
public void remove_EntryWritten (EntryWrittenEventHandler value)
JScript 支持使用事件,但不支持进行新的声明。
备注
若要获取事件通知,必须将 EnableRaisingEvents 设置为 true。只有在本地计算机上写入项时,才能接收事件通知。无法接收在远程计算机上写入项时的通知。
创建 EntryWritten 委托时,标识将处理事件的方法。若要使该事件与事件处理程序相关联,请将该委托的一个实例添加到事件中。每当事件出现时就调用事件处理程序,直到移除该委托。有关用委托处理事件的更多信息,请参见 使用事件。
仅当上一个写入事件至少在五秒种之前发生时,系统才响应 WriteEntry。这意味着即使发生了多个事件日志更改,在五秒钟的间隔内也只会接收到一个 EntryWritten 事件通知。如果在 WriteEntry 调用之间插入足够长的休眠间隔(大约 10 秒),则不会丢失任何事件。然而,如果写入事件发生得更为频繁,则最新的写入事件可能会丢失。
示例
下面的示例处理一个项写入事件。
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
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();
}
}
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
ref class MySample
{
private:
// This member is used to wait for events.
static AutoResetEvent^ signal;
public:
static void main()
{
EventLog^ myNewLog = gcnew EventLog;
myNewLog->Log = "MyCustomLog";
myNewLog->EntryWritten += gcnew EntryWrittenEventHandler( MyOnEntryWritten );
myNewLog->EnableRaisingEvents = true;
signal = gcnew AutoResetEvent( false );
signal->WaitOne();
}
static void MyOnEntryWritten( Object^ /*source*/, EntryWrittenEventArgs^ /*e*/ )
{
signal->Set();
}
};
int main()
{
MySample::main();
}
import System.*;
import System.Diagnostics.*;
import System.Threading.*;
class MySample
{
// This member is used to wait for events.
private static AutoResetEvent signal;
public static void main(String[] args)
{
EventLog myNewLog = new EventLog();
myNewLog.set_Log("MyCustomLog");
myNewLog.add_EntryWritten(new EntryWrittenEventHandler(
MyOnEntryWritten));
myNewLog.set_EnableRaisingEvents(true);
signal = new AutoResetEvent(false);
signal.WaitOne();
} //main
private static void MyOnEntryWritten(Object source,
EntryWrittenEventArgs e)
{
signal.Set();
} //MyOnEntryWritten
} //MySample
.NET Framework 安全性
- EventLogPermission 用于管理计算机上的事件日志信息。关联的枚举:EventLogPermissionAccess.Administer
平台
Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
请参见
参考
EventLog 类
EventLog 成员
System.Diagnostics 命名空间
EventLog.EnableRaisingEvents 属性