.net - 从 EventLogEntry.Category 获取类别文本

标签 .net event-log

出于某种原因,EventLogEntry.Category 返回一个数字而不是类别的文本。它返回与 CategoryNumber 属性相同的东西,我假设它不应该发生。我在这里做错了什么,还是有不同的方法来获取 EventLogEntry 的类别文本?

这是一些重现错误的代码:

Console.WriteLine(new EventLog("System").Entries[0].Category);

这应该写成“无”或“服务状态事件”(或任何相关类别适合您),而是写成“(0)”。关于我在这里做错了什么有什么想法吗?

最佳答案

这是他们 API 中的一个错误。我认为它不会很快得到解决。这只发生在 Windows Vista 和更高版本的操作系统中。所以这实际上在 XP、2000、2003 等中可以正常工作。

但是,您应该考虑另一种方法。似乎这是以编程方式访问事件日志的较低级别的方法。该技术是 Windows Management Instrumentation (WMI),在 .NET 和 C# 中有一个接口(interface)。

查看这些链接:

Windows Management Instrumentation (WMI) Tutorial

Monitoring Remote Log Remotely using WMI in C# and .NET

Reading Widsows Event Log

关于.net - 从 EventLogEntry.Category 获取类别文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4236376/

相关文章:

c# - 从不受信任的域生成 GPO 报告

.net - 生成发票

c# - 哪种方法更适合在 C# 中读取 Windows 事件日志? WMI 或事件日志

c# - 如何在C#中将所有Excel工作表导入DataSet

asp.net - 在 MVC 3 中使用 DependencyResolver 进行 Controller 实例化时出错

.net - 使自定义 .NET 异常可序列化的正确方法是什么?

xml - 如何使用结构化 XML 数据编写事件日志条目?

c# - NCron 默认记录器写入事件日志,抛出 SecurityException

c# - 无法将事件源重新注册到新的自定义事件日志