我想使用 ReportEvent() 向Windows事件日志中添加严重类型的事件消息,但是根据文档,仅允许以下类型:

EVENTLOG_SUCCESS
EVENTLOG_ERROR_TYPE
EVENTLOG_WARNING_TYPE
EVENTLOG_INFORMATION_TYPE
EVENTLOG_AUDIT_SUCCESS
EVENTLOG_AUDIT_FAILURE

那么,如何添加EVENTLOG_CRITICAL呢?由于可以在Windows事件查看器中看到重要消息。

最佳答案

正如ReportEvent()文档所说,它不支持“关键”消息。您无能为力,也无法添加更改。

但是,ReportEvent()并不是将消息记录到Windows事件日志的唯一方法,甚至不是首选方法。 MSDN在Event Logging API的文档中声明了以下内容(ReportEvent()属于其中):



在较新的Event Log API的文档中,Writing an Instrumentation Manifest的部分包含有关Defining Severity Levels的子部分,该子部分显示Win:Critical是“常用的严重性级别”之一。

您将不得不替换对ReportEvent()的现有调用,以改为使用Event Tracing Functions( EventWrite() EventWriteEx() EventWriteString() TraceEvent() 等)之一。

10-02 06:48