代码之家  ›  专栏  ›  技术社区  ›  JMarsch

将XML数据放入Windows事件日志

  •  3
  • JMarsch  · 技术社区  · 15 年前

    如何将XML数据写入Windows事件日志?

    我注意到有一种方法可以将XML插入到Windows事件日志中(而不仅仅是将其填充到描述中)。其效果是您只会在 General 在Windows Vista上查看。您可以在 Details 查看。

    如果您选择 Friendly 单选按钮,它出现在 Event Data 节点。如果选择XML视图,则可以看到XML。

    我认为rawdata字节数组 EventLog.WriteEntry() 方法将允许我这样做。我尝试将XML编写器的输出填充到其中。将数据放入事件日志,但它被视为二进制而不是XML。

    3 回复  |  直到 11 年前
        1
  •  3
  •   Gary.Ray    15 年前

    除非我弄错了,否则为了将XML写入Crimson/Vista事件日志,您将创建并注册一个清单,该清单将为您提供适当的通道和事件。然后您必须使用 Message Compiler (mc.exe) in the WindowsSDK .

    然后,如果您想从C进行日志记录,您将需要创建一个托管提供程序来包装事件日志记录API。这有点困难,因为您必须使用pinvoke才能获得API。

    有关于如何完成整个过程的博客文章 here .

        2
  •  2
  •   Shay Erlichmen    15 年前

    你有一个样品 Windows SDK (ver 6.1) 调用了EventProvider。
    它是一个使用新事件日志API(又名Crimson)的C提供者(需要Vista和最新版本)。
    此示例演示如何添加自定义数据(其他内容的数量)。

        3
  •  2
  •   Casper Leon Nielsen    11 年前

    对于.NET 4.5,查看新的eventsource,它还支持自动生成清单。