2016-09-19 24 views
0

我正在使用C#代碼從eventviewer日誌文件中獲取特定錯誤的錯誤消息。如何使用c#從EventViewer日誌中獲取最新的錯誤細節?

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

這是我的主要功能,其中我在我的應用程序日誌中獲取特定錯誤的錯誤消息,我打印的文本文件中的錯誤消息。因此,我不想使用日期時間訪問錯誤,我想訪問日誌文件中的最新錯誤。如何獲取日誌文件中最後輸入的錯誤?提前致謝。

+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

謝謝。答案正常。但在日誌文件中,有信息,警告和錯誤。此代碼可以捕獲最後一個條目的消息,而不管類型,即警告,信息或錯誤。即使最後一個條目是警告或信息,我如何才能更改代碼以單獨捕獲最後一條錯誤消息.'var lastEntry = myLog.Source [myLog.Source.Count - 1];'這樣做會工作嗎?但它顯示我錯誤 – Vishwaroopa

+0

添加for循環以獲取最後一個錯誤。 –

+0

它對你有用嗎? –

相關問題