如何使用c ++(非托管,无.net框架)写入自定义事件日志

时间:2015-02-19 17:01:20

标签: c++ logging manifest native

我无法理解如何使用c ++登录自定义事件日志 我会更好地解释:谷歌搜索几个小时我发现使用Windows日志的最新方法应该是命名" Windows事件日志"建立在ETW之上(这里是https://msdn.microsoft.com/en-us/library/windows/desktop/aa385780%28v=vs.85%29.aspx

我希望我的日志事件在EventViewer中显示在"应用程序和服务日志" \" MyAppCustomLog"

所以我做了这些步骤 - 编辑注册表创建MyAppCustomLog条目(HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ EventLog \ MyAppCustomLog)

  • 使用SDK实用程序" ecmangen"创建了一个Instrumentation Manifest(xml文件),创建了清单文件MyAppLog.man
  • 使用消息编译器构建.rc和.bin和.h文件:mc -um MyAppLog.man -h。 -z MyAppLog
  • 使用wevtutil以这种方式注册清单:wevtutil im MyAppLog.man
  • 创建一个简单的consolle应用程序,以这种方式调用MyAppLog.h(由消息编译器创建的头):

    ... ULONG result = EventRegisterMyAppLog(); ... EventWriteMyAppLogSimpleEvent(); ... EventUnregisterMyAppLog(); ...

但是如果我执行那些方法,那么事件会去哪里?如何将其与自定义事件日志关联?我无法理解......

我做错了什么?
我确信我的拼图中缺少一些碎片但是哪些碎片? 我的问题是:如何将我在清单(MyAppLogSimpleEvent)中定义的事件链接到我在事件查看器中看到的自定义事件日志MyAppCustomLog? 有人可以解释我如何设置我的事件和自定义日志之间的关系?
如果这是错误的方法(在自定义事件日志中的某种清单中定义写事件),请你解释一下我该怎么做?

非常感谢你的帮助

0 个答案:

没有答案