出于某种原因,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/