我想在我的 C++ 应用程序上使用日志。但是,我想使用 Windows (10) 事件查看器,而不是文本文件。我发现了一些奇怪的调用,我什至不知道参数的含义 -报告事件 https://msdn.microsoft.com/en-us/library/windows/desktop/aa363679(v=vs.85).aspx, 打开事件日志 https://msdn.microsoft.com/en-us/library/windows/desktop/aa363672(v=vs.85).aspx和其他一些事件记录功能 https://msdn.microsoft.com/en-us/library/windows/desktop/aa363654(v=vs.85).aspx。由于我的应用程序存在一些限制,我也无法使用托管代码。
我也尝试过使用此代码,但我收到编译错误(命名空间“系统”未定义 - 似乎缺少一些包含文件...)。
我发现还没有可用的示例代码。
如果可能的话,我希望有一个示例代码 - 只是来自本地应用程序的简单日志记录,用非托管 C++ 构建。有人可以帮忙吗?
您的链接无法编译,因为它是托管 C++(请注意使用gcnew
)
如果你想写的只是字符串,那很简单,你所需要的就是RegisterEventSource
and ReportEvent
.
大概是这样的:
const char* custom_log_name = "MyLogName";
// create registry keys for ACLing described on MSDN: http://msdn2.microsoft.com/en-us/library/aa363648.aspx
HANDLE event_log = RegisterEventSource(NULL, custom_log_name);
const char* message = "I'm in an event log";
ReportEvent(event_log, EVENTLOG_SUCCESS, 0, 0, NULL, 1, 0, &message, NULL);
这只允许记录字符串。更复杂(且有用)的日志记录是可能的,但它相当涉及直接 C++。如果您可以为日志组件编写托管代码,那么处理就会变得更容易。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)