在C#中访问嵌套事件日志

时间:2016-09-30 21:30:38

标签: c# event-log

我正在尝试使用EventLog获取与打印机相关的日志。

我使用来自this question的提示枚举了系统中的所有日志,如下所示:

foreach (var e in EventLogSession.GlobalSession.GetLogNames()) {
            Console.WriteLine(e);
        }

我得到了所需日志的日志名称 - Microsoft-Windows-PrintService/Operational

然而,这段代码崩溃了:

var evt = new EventLog("Microsoft-Windows-PrintService/Operational");

An unhandled exception of type 'System.InvalidOperationException' occurred in System.dll
Additional information: The event log 'Microsoft-Windows-PrintService/Operational' on computer '.' does not exist.

我在管理员下运行MSVC 2015。

new EventLog("Application");

就像魅力,我如何创建自定义嵌套事件日志?

1 个答案:

答案 0 :(得分:1)

如果您只想阅读活动,可以尝试EventReader课程:

 var printerServiceQuery = new EventLogQuery("Microsoft-Windows-PrintService/Operational", PathType.LogName);
 var reader = new EventLogReader(printerServiceQuery);
 EventRecord entry = null;
 while( (entry = reader.ReadEvent()) != null)
 {
     Console.WriteLine(entry.FormatDescription());
 }