我正在尝试通读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
答案 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
属性)或格式字符串格式错误(它似乎有一个迷路'%')。虽然如果日志条目来自服务控制管理器,这些解释似乎都不合理。