2016-09-19 6 views
0

Я использую код C# для извлечения сообщения об ошибке конкретной ошибки из файла журнала eventviewer.Как получить последние данные об ошибках из журнала EventViewer с помощью C#?

static void Main(string[] args) 
    { 
     EventLog myLog = new EventLog(); 
     myLog.Log = "Application"; 
     myLog.Source = "Application Error"; 
     foreach (System.Diagnostics.EventLogEntry entry in myLog.Entries) 
     { 
     if (entry.TimeGenerated == DateTime.Parse("9/19/2016 11:48:58 AM")) 
      { 
       using (StreamWriter writer = File.AppendText("Example.txt")) 
      { 
       writer.WriteLine(error_Message); 
      } 
     } 
    } 

Это моя основная функция, где я получаю сообщение об ошибке конкретной ошибки в моем журнале приложений, и я печатая сообщение об ошибке в текстовом файле. Поэтому вместо доступа к ошибке с datetime я хочу получить доступ к последней ошибке в файле журнала. Как я могу получить последнюю введенную ошибку в файле журнала? Спасибо заранее.

+0

Не понял, почему вы комментируете метку времени, когда хотите получить последнее сообщение об ошибке. –

ответ

1
EventLog myLog = new EventLog(); 
myLog.Log = "Application"; 
myLog.Source = "Application Error"; 

var lastEntry = myLog.Entries[myLog.Entries.Count-1]; 
var last_error_Message = lastEntry.Message; 

for(int index=myLog.Entries.Count-1; index>0;index--) 
{ 
    var errLastEntry = myLog.Entries[index]; 
    if (errLastEntry.EntryType == EventLogEntryType.Error) 
    { 
     //this is the last entry with Error 
     var appName = errLastEntry.Source; 
     break; 
    } 
} 
+0

Спасибо. Ответ работает отлично. Но в файле журнала есть информация, предупреждения и ошибка. Этот код может захватывать сообщение для последней записи независимо от типа, то есть предупреждения, информации или ошибки. Как я могу изменить код, чтобы фиксировать последнее сообщение ERROR, даже если последняя запись была предупреждением или информацией. 'v lastEntry = myLog.Source [myLog.Source.Count - 1]; 'это будет работать? Но это показывает мне ошибку – Vishwaroopa

+0

Добавлен цикл for для получения последней ошибки. –

+0

Это сработало для вас? –

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

  • Нет связанных вопросов^_^