使用c ++中的win api获取事件查看器日志

时间:2010-09-22 21:31:17

标签: c++ winapi event-log event-viewer

我的应用程序需要将事件查看器日志保存到指定目录,并且必须使用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;
}

1 个答案:

答案 0 :(得分:2)

您可以使用EvtOpenChannelEnumEvtNextChannelPathEvtClosedocumentation)枚举系统上的可用频道。这些API(具体为EvtNextChannelPath)将以EvtExportLog的适当格式返回路径。