公司服务器有时候会发生异常,为了实时监控异常事件发生,方法如下:
使用时加一个timer循环调用该方法即可:
event_check(3, 10016, EventLogEntryType.Warning, "System");//检查当前时间往前推3小时候内本机是否有发生10016事件
#region[程序和系统日志确认]
/// <summary>
/// 程序和系统日志确认
/// </summary>
/// <param name="time_interval">时间差</param>
/// <param name="event_id">事件ID</param>
/// <param name="event_type">事件等级</param>
/// <param name="LogType">"Application", "System"</param>
/// <returns></returns>
private bool event_check(int time_interval, int event_id, EventLogEntryType event_type, string LogType)
{
try
{
EventLog m_ALLLog = new EventLog();
m_ALLLog.Log = LogType;
foreach (EventLogEntry m_Log in m_ALLLog.Entries)
{
if ((m_Log.EntryType == event_type) && (m_Log.InstanceId == event_id) && (DateTime.Now.Subtract(m_Log.TimeGenerated).TotalHours < time_interval))//eventid已弃用,改用InstanceId
{
return true;//有发生
}
}
return false;
}
catch (Exception ex)
{
return true;//异常时默认回复true,人员会确认问题
}
}
#endregion