如何在Windows EventLogEntry消息中查找错误号

时间:2012-09-20 17:28:02

标签: c# .net windows winapi

我正在尝试通读c#中的Windows事件日志“错误”条目消息。

  foreach (EventLogEntry log in eventLog.Entries)
  {
    if (log.EntryType.ToString() == "Error") 
    {
        Console.WriteLine( log.Message);
    }
  }

输出为“由于以下错误导致XYZ服务无法启动:\ r \ n %% 2”

虽然我正在寻找的条目是

“由于以下错误,XYZ服务无法启动:\ r \ n系统找不到指定的文件。”

如何从id转换为相应的错误消息?

非常感谢, KG

1 个答案:

答案 0 :(得分:0)

事件日志消息是模板,例如:

The %1 service failed to start due to the following error: \r\n%2

事件日志条目包含用于替换%1,%2等的消息编号和替换字符串

.Net EventLogEntry.Message属性代替你,所以你永远不应该看到%1,%2等。

看起来替换失败了,可能是因为没有足够的替换字符串(检查EventLogEntry.ReplacementStrings属性)或格式字符串格式错误(它似乎有一个迷路'%')。虽然如果日志条目来自服务控制管理器,这些解释似乎都不合理。