如何使用c#从EventViewer日志中获取最新的错误细节?

问题描述:

我正在使用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

没有得到为什么当你想要最后的错误信息时,你正在共同映射时间戳。 –

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

它对你有用吗? –