2015-12-06 2 views
1

Я хочу читать записи событий из определенного журнала событий в программе C#, И фильтровать их по их описанию. Есть ли способ сделать это? Или способ получить записи как коллекцию, поэтому я смогу выбрать из этого условия?Чтение записей просмотра событий

+0

Проверьте класс [EventLog] (https://msdn.microsoft.com/en-us/library/system.diagnostics.eventlog (v = vs.110) .aspx) – LightBulb

+0

Проверено, есть свойство «Записи», не знаю, как читать из него по условию. –

+0

Вы говорите о событиях, которые вы увидите с помощью event'wr.msc, или вы говорите о каких-то событиях, связанных с приложением? – Shnugo

ответ

3

попробовать что-то вроде этого:

 string queryString = string.Format("*[System[TimeCreated[@SystemTime>='{0}' and @SystemTime<='{1}']]]", 
      DateTime.Now.Date.AddDays(-10).ToString("s"), 
      DateTime.Now.Date.ToString("s")); 
     var q = new EventLogQuery("Microsoft-Windows-User Profile Service/Operational", PathType.LogName, queryString); 
     var r = new EventLogReader(q); 

     var list = new List<EventRecord>(); 

     EventRecord er = r.ReadEvent(); 
     while (er != null) { 
      list.Add(er); 
      er = r.ReadEvent(); 
     } 

Фильтр XPath и XQuery. Если вы хотите узнать о внутренней структуре событий, мне было лучше всего прочитать определение фильтра в eventvwr. Посмотрите на XML -tab ...

+0

Ничего себе, спасибо за советы по поводу такого подхода к чтению журналов событий! Благодаря этому я смог сократить время чтения моих журналов с 35 секунд до 4 секунд! – ensisNoctis

Смежные вопросы