将XML数据放入Windows事件日志中

时间:2009-05-06 17:19:15

标签: c# .net xml event-viewer

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

我注意到有一种方法可以将XML插入到Windows事件日志中(而不是将其填充到描述中)。结果是,您只能在Windows Vista的General视图中获得描述消息。您可以在Details视图中查看XML数据。

如果选择Friendly单选按钮,它将显示在Event Data节点下。如果选择XML视图,那么您将看到XML。

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

3 个答案:

答案 0 :(得分:3)

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

然后,如果要从C#登录,则需要创建托管提供程序以包装事件日志记录API。这有点困难,因为您必须使用PInvoke来获取API。

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

答案 1 :(得分:2)

您在Windows SDK (ver 6.1)中有一个名为EventProvider的示例 它是一个使用新的事件日志API(AKA深红色)的C#提供者(需要Vista和工作) 此示例显示如何添加自定义数据(其他数量)。

答案 2 :(得分:2)

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