4

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

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

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

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

4

2 回答 2

3

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

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

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

于 2009-05-06T18:11:09.433 回答
2

您在Windows SDK (ver 6.1)中有一个名为 EventProvider的示例。
它是一个使用新事件日志 API(AKA crimson)的 C# 提供程序(需要 Vista 和最多才能工作)。
此示例显示如何添加自定义数据(金额其他内容)。

于 2009-05-06T18:36:18.157 回答