用托管C++監視Windows事件日志[2]

發表于:2007-05-14來源:作者:點擊數: 標簽:日志windows事件C++托管
3、把事件處理程序連接到"新事件日志項"事件 首先,實例化定義了事件處理程序的對象(在此例中為NewLogEntryEventHandler),接著,把事件方法(OnNewLogEntry)添加到EventLog::EntryWritten的事件處理程序列表中: NewLogEntryEventHandler* handler = new

  3、把事件處理程序連接到"新事件日志項"事件

  首先,實例化定義了事件處理程序的對象(在此例中為NewLogEntryEventHandler),接著,把事件方法(OnNewLogEntry)添加到EventLog::EntryWritten的事件處理程序列表中:

clearcase/" target="_blank" >cccccc width="90%" align=center bgColor=#e7e9e9 border=1>
NewLogEntryEventHandler* handler = new NewLogEntryEventHandler();
log->EntryWritten +=
new EntryWrittenEventHandler( handler,&NewLogEntryEventHandler::OnNewLogEntry);

  4、為特定事件的處理編寫代碼

  回過頭來看一個OnNewLogEntry方法,可以看到傳遞給事件處理程序的EntryWrittenEventArgs對象有一個名為EventLogEntry的成員,其包含了有關記錄項目的詳細情況,具體為以下屬性:

  ·MachineName--創建事件日志的電腦系統名。

  ·Source--創建此事件的事件源或程序源。

  ·Message--用戶可在事件查看器中讀取這條文本值,其描述了記錄的事件。

  ·Event Type--此值(代表了EventLogEntryType)為一個枚舉值,其代表記錄的事件類型:信息(默認)、警告、錯誤、審核成功、審核失敗。

  ·Event ID--為有關事件程序特定的號碼。

  ·Data--此值通常用于存儲二進制信息--如內存轉儲--也是與事件有關的。

  不足之處

  從以上可以看出, .NET使得訪問事件日志非常簡單,然而,以下也有一些有關處理事件日志時的限制條件:

  ·只能在本地系統上監視事件。

  ·.NET文檔未說明,如果在短時間內記錄了大量的事件,是否可保證每個事件都可被引發。

  ·如果監視了更新特別頻繁的事件日志,事件有可能不會立即引發,在事件項之間很可能會有一個滯后,接著突然會有大量的事件通知進入消息隊列。

原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97