BOOL ReportEvent(
_In_ HANDLE hEventLog,
_In_ WORD wType,
_In_ WORD wCategory,
_In_ DWORD dwEventID,
_In_ PSID lpUserSid,
_In_ WORD wNumStrings,
_In_ DWORD dwDataSize,
_In_ LPCTSTR *lpStrings,
_In_ LPVOID lpRawData
);
最近要使用windows服务,需要记录一下系统日志,来学习一下,winodws 中的报告事件。
上面是ReportEvent的函数声明,具体参数意义见:http://msdn.microsoft.com/ZH-CN/library/windows/desktop/aa363679%28v=vs.85%29.aspx
以下是对http://msdn.microsoft.com/ZH-CN/library/windows/desktop/aa363680%28v=vs.85%29.aspx
中的实践
----分隔线----
报告事件
为了报告事件,你必须先在消息文本中定义事件。更多写一个消息文本文件见消息文本文件。
下面给出了例子中所用的消息文件文件。
(注意复制时,最后一个"."后面还有一个行,如果没有这一行,会出现“invalid character (0x2e)”错误)
; // MyEventProvider.mc
; // This is the header section.
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
FacilityNames=(System=0x0:FACILITY_SYSTEM
Runtime=0x2:FACILITY_RUNTIME
Stubs=0x3:FACILITY_STUBS
Io=0x4:FACILITY_IO_ERROR_CODE
)
LanguageNames=(English=0x409:MSG00409)
; // The following are the categories of events.
MessageIdTypedef=WORD
MessageId=0x1
SymbolicName=NETWORK_CATEGORY
Language=English
Network Events
.
MessageId=0x2
SymbolicName=DATABASE_CATEGORY
Language=English
Database Events
.
MessageId=0x3
SymbolicName=UI_CATEGORY
Language=English
UI Events
.
; // The following are the message definitions.
MessageIdTypedef=DWORD
MessageId=0x100
Severity=Error
Facility=Runtime
SymbolicName=MSG_INVALID_COMMAND
Language=English
The command is not valid.
.
MessageId=0x101
Severity=Error
Facility=System
SymbolicName=MSG_BAD_FILE_CONTENTS
Language=English
File %1 contains

这篇博客介绍了如何在Windows服务中使用ReportEvent函数记录系统日志。文章详细讲解了函数的使用,并提供了相关参数的链接,还分享了实践中创建消息文本文件的步骤和示例,以及注册消息文件的方法。最后,作者展示了在事件查看器中查看记录的日志结果,并表示会继续探索更多使用方法。
最低0.47元/天 解锁文章
836

被折叠的 条评论
为什么被折叠?



