如何以编程方式打开事件日志?

时间:2009-03-04 07:13:43

标签: c# .net winforms event-log

我使用通常的方法将错误记录到事件日志中:

 System.Diagnostics.Trace.TraceError("<" + purpose + "><time>" + DateTime.Now.ToUniversalTime() + "</time><message>" + message + "</message></" + purpose + ">");

我想知道是否有办法调用此日志文件并为用户显示(以我自己的格式或直接打开事件日志文件,就像'事件查看器'一样)。

我在%SystemRoot%\ System32 \ Winevt \ Logs \ mylog.evtx中找到了该文件,但不确定我是否应该以这种方式接近它。理想情况下,我想模拟事件查看器的功能,但为我的应用程序定制。

2 个答案:

答案 0 :(得分:5)

尝试System.Diagnostics.EventLog

例如,您可以按如下方式查看应用程序日志中的条目

var log = EventLog.GetEventLogs().Where(x => x == "Application").First();
foreach (var entry in log.Entries) {
  // Do something with the entry
}

答案 1 :(得分:1)

我没有尝试过查看事件日志中数据在Vista / Win Server 2k8(* .evtx)中的可访问性,但MMC控制台是可扩展的,因此您现在可以编写自己的MMC插件。因此,如果您最终编写了自己的EventVwr.msc版本,那么现在就很容易了。

http://msdn.microsoft.com/en-us/library/ms692759(VS.85).aspx

您希望在当前功能中缺少的自定义日志查看器中执行什么操作?