2016-09-30 2 views
1
zu.

Ich versuche, Drucker-bezogene Protokolle mit EventLog zu erhalten.Greifen Sie auf verschachteltes Ereignisprotokoll in C#

Ich habe alle Protokolle in System aufgezählt, Hinweis von this question verwenden, wie folgt aus:

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

Und ich habe Namen benötigten Log log - Microsoft-Windows-PrintService/Operational.

Doch dieses Stück Code abstürzt:

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

mit

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. 

I MSVC 2015 unter Administrator leite.

new EventLog("Application"); 

funktioniert wie ein Charme, wie kann ich benutzerdefinierte verschachtelte Ereignisprotokoll erstellen?

Antwort

1

Wenn Sie nur gesuchte Ereignisse zu lesen, können Sie die EventReader Klasse versuchen:

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