我需要添加一个类型为Critical的事件日志

时间:2017-05-15 07:16:30

标签: c++ winapi event-log

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

EVENTLOG_SUCCESS  
EVENTLOG_ERROR_TYPE  
EVENTLOG_WARNING_TYPE  
EVENTLOG_INFORMATION_TYPE  
EVENTLOG_AUDIT_SUCCESS  
EVENTLOG_AUDIT_FAILURE

那我该如何添加EVENTLOG_CRITICAL?可以在Windows事件查看器中看到关键消息。

1 个答案:

答案 0 :(得分:1)

正如ReportEvent()文档所述,它不支持" critical"消息。没有什么可以做或添加来改变它。

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

  

注意事件记录API专为在Windows Server 2003,Windows XP或Windows 2000操作系统上运行的应用程序而设计。在Windows Vista中,重新设计了事件日志记录基础结构。旨在在Windows Vista或更高版本操作系统上运行的应用程序应使用Windows Event Log来记录事件。

在较新Event Log API的文档中,Writing an Instrumentation Manifest上的部分有一个关于Defining Severity Levels的子部分,其中显示Win:Critical是"之一。常用的严重程度"。

您必须将现有的来电替换为ReportEvent()才能使用Event Tracing Functions之一(EventWrite()EventWriteEx()EventWriteString(),{{3等等)。