使用Pantheios日志记录库记录到Windows事件

时间:2012-01-26 09:25:18

标签: logging pantheios

  

如何使用Pantheios将日志消息发送到Windows事件日志?

  

如果我使用Pantheious从多个进程中执行此操作,那么它是否为进程   安全?我会得到裂缝吗?

2 个答案:

答案 0 :(得分:3)

您需要执行以下操作:

  1. 您需要链接be.WindowsEventLog 在Windows上,可以通过将#include <pantheios/implicit_link/be.WindowsEventLog.h>添加到其中一个编译单元来使用隐式链接来完成。

  2. 此外,必须定义特定于应用程序的函数pantheios_be_WindowsEventLog_calcCategoryAndEventId()(在docs中的 tiny 注释中指定:< strong> 注意 这是一个应用程序指定的函数。

  3. pantheios-folder\test\scratch\test.scratch.api\test.scratch.api.cpp

    中可以找到一个简单的实现示例
    //  The following allows this to be used with the Windows EventLog back-end.
    PANTHEIOS_CALL(void) pantheios_be_WindowsEventLog_calcCategoryAndEventId(
        int                     /* backEndId */
    ,   int                     /* severity */
    ,   pantheios::uint16_t*    category 
    ,   pantheios::uint32_t*    eventId
    ) /* throw() */
    {
    
       // NOTE: A proper implementation would specify non-0 values here that
       // identify the requisite event identifier and category within the
       // associated message file(s).
    
       *eventId    =   0;
       *category   =   0;
    }
    

    categoryeventID的文档分别位于MSDN Event Logging docs herehere

答案 1 :(得分:0)

  1. 使用be.WindowsEventLog。

  2. 不,我不相信,比你从多个进程使用事件日志更多。