2017-05-15 40 views
1

我想用ReportEvent()一個關鍵型到Windows事件日誌中添加事件的消息,但根據文檔,只有以下類型的允許:我需要添加一個事件日誌類型的關鍵

EVENTLOG_SUCCESS 
EVENTLOG_ERROR_TYPE 
EVENTLOG_WARNING_TYPE 
EVENTLOG_INFORMATION_TYPE 
EVENTLOG_AUDIT_SUCCESS 
EVENTLOG_AUDIT_FAILURE 

那麼如何添加EVENTLOG_CRITICAL?因爲可以在Windows事件查看器中看到關鍵消息。

回答

1

正如ReportEvent()文檔所述,它不支持「關鍵」消息。沒有什麼可以做或者添加來改變它。

但是,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()TraceEvent(),等等)。

相關問題