阅读事件日志

【勇芳软件工作室】汉化HomePreviousNext

以下代码示例读取应用日志文件中的所有记录,并显示每个事件日志条目的事件标识符,事件类型和源名称。

EVENTLOGRECORD *pevlr;

BYTE bBuffer[BUFFER_SIZE];

DWORD dwRead, dwNeeded, cRecords, dwThisRecord = 0;

/ *打开应用程序事件日志。*/

h = OpenEventLog(NULL, /* uses local computer */

"Application"); /* source name */

if (h == NULL)

ErrorExit("could not open Application event log");

pevlr = (EVENTLOGRECORD *) &bBuffer;

/*

*打开事件日志定位文件指针

*在日志开头的这个句柄。

*

*顺序读取记录到那里

*不再

*/

while(ReadEventLog(h,/ * event log handle * /

EVENTLOG_FORWARDS_READ | / *前瞻* /

EVENTLOG_SEQUENTIAL_READ,/ *顺序读取* /

0,/ *忽略顺序读取* /

pevlr,/ *缓冲区地址* /

BUFFER_SIZE,/ *缓冲区大小* /

& dwRead,/ *读取的字节数*

& dwNeeded))下一个记录中的{/ *字节* /

while(dwRead > 0){

/*

*打印事件ID,类型和源名称。

源代码刚刚过去了

*正式结构。

*/

printf(“%02d事件ID:0x%08X”,

dwThisRecord++, pevlr->EventID);

printf(“EventType:%d Source:%s \\ n”,

pevlr- > EventType,(LPSTR)((LPBYTE)pevlr +

sizeof(EVENTLOGRECORD)));

dwRead -= pevlr->Length;

pevlr = (EVENTLOGRECORD *)

((LPBYTE) pevlr + pevlr->Length);

}

pevlr = (EVENTLOGRECORD *) &bBuffer;

}

CloseEventLog(h);