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

Access nested event log in C#

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

我已经枚举了系统中的所有日志,使用来自 的提示,像这样:

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");

工作得很好,如何创建自定义嵌套事件日志?

如果您只想阅读事件,可以尝试 EventReader class:

 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());
 }