使用 c++ 中的 win api 获取事件查看器日志
我的应用程序需要将事件查看器日志保存到指定目录,并且必须使用 win api 来完成。需要应用程序和系统日志。
编辑:EvtExportLog - 我发现我无法使用此功能,因为最低要求是 Win Server 2008,并且我需要此功能在 Win Server 2000 和 Win Server 2003 上工作。
有什么建议以及如何使用它吗?
感谢理查德·库克,我们找到了解决方案。
int getEventLogs()
{
HANDLE h = OpenEventLog(NULL,"System");
if(!BackupEventLog(h,"backup.evt"))
{
wprintf(L"BackupEventLog failed for initial export with %lu.\n", GetLastError());
}
return 1;
}
My application need to save event viewer logs to a specified directory and it has to be done with win api. Application and System logs are required.
EDIT: EvtExportLog - I found out that I can't use this function because minimal requirements are Win Server 2008, and I need this to work on Win Server 2000 and Win Server 2003.
Any suggestions what to use and how to use it?
And there is solution thanks to Richard Cook.
int getEventLogs()
{
HANDLE h = OpenEventLog(NULL,"System");
if(!BackupEventLog(h,"backup.evt"))
{
wprintf(L"BackupEventLog failed for initial export with %lu.\n", GetLastError());
}
return 1;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
EvtOpenChannelEnum
、EvtNextChannelPath
和EvtClose
(文档)。这些 API(特别是EvtNextChannelPath
)将以适当的格式返回EvtExportLog
的路径。You can enumerate the available channels on the system using
EvtOpenChannelEnum
,EvtNextChannelPath
andEvtClose
(documentation). These APIs (EvtNextChannelPath
specifically) will return paths in an appropriate format forEvtExportLog
.