public string Convert(EventLogQueryCriteria eventLogQueryCriteria) { var query = "<QueryList>" + " <Query Id=\"0\">" + " <Select>" + " *[System[((Level = 4) or (Level = 3)) " + " and TimeCreated[timediff(@SystemTime) <= 86400000]]]" + " </Select>" + " </Query>" + "</QueryList>"; StringBuilder queryString = new StringBuilder(); queryString.Append("*[System"); var criteriaList = new List <string>(); AddEventLogLevelCriteria(eventLogQueryCriteria, criteriaList); AddEventLogDateCriteria(eventLogQueryCriteria, criteriaList); AddEventLogProviderNameCriteria(eventLogQueryCriteria, criteriaList); if (criteriaList.Any()) { queryString.Append("["); queryString.Append(string.Join(AND, criteriaList)); queryString.Append("]"); } queryString.Append("]"); return(string.Concat(QUERY_BEGIN, queryString.ToString(), QUERY_ENDING)); }
public void OneProviderOnly() { var criteria = new EventLogQueryCriteria(); criteria.ProvidersName.Add("TTT"); var queryString = _eventLogCriteriaConverter.Convert(criteria); var r = _eventLogReaderService.ReadLogs("localhost", new EventLogQuery("Application", PathType.LogName, queryString), null); }
public void InformationCriteriaOnly() { var criteria = new EventLogQueryCriteria(); criteria.EventLogEntryTypeList.Add(EventLogEntryLevel.Information); var queryString = _eventLogCriteriaConverter.Convert(criteria); var r = _eventLogReaderService.ReadLogs("localhost", new EventLogQuery("Application", PathType.LogName, queryString), null); }
public IList <EventRecord> ReadLogs(string server, EventLogQueryCriteria criteria) { var serversList = new List <string>() { server }; return(ReadLogs(serversList, criteria)); }
public void InformationCriteriaAndLast10Minutes() { var criteria = new EventLogQueryCriteria(); criteria.EventLogEntryTypeList.Add(EventLogEntryLevel.Information); criteria.DateFrom = DateTime.Now.AddMinutes(-10); var queryString = _eventLogCriteriaConverter.Convert(criteria); var r = _eventLogReaderService.ReadLogs("localhost", new EventLogQuery("Application", PathType.LogName, queryString), null); Assert.IsTrue(r.All(x => x.TimeCreated >= criteria.DateFrom)); }
private static void AddEventLogProviderNameCriteria(EventLogQueryCriteria eventLogQueryCriteria, List <string> criteriaList) { if (eventLogQueryCriteria.ProvidersName.Any()) { var crit = "("; var listProviderCriteria = new List <string>(); foreach (var provider in eventLogQueryCriteria.ProvidersName) { listProviderCriteria.Add(string.Format("(Provider[@Name = '{0}'])", provider)); } crit += string.Join(OR, listProviderCriteria); crit += ")"; criteriaList.Add(crit); } }
private static void AddEventLogLevelCriteria(EventLogQueryCriteria eventLogQueryCriteria, List <string> criteriaList) { if (eventLogQueryCriteria.EventLogEntryTypeList.Any()) { var crit = "("; var levelList = new List <string>(); foreach (var level in eventLogQueryCriteria.EventLogEntryTypeList) { levelList.Add(string.Format("(Level = {0})", (int)level)); } crit += String.Join(OR, levelList); crit += ")"; criteriaList.Add(crit); } }
private static void AddEventLogDateCriteria(EventLogQueryCriteria eventLogQueryCriteria, List <string> criteriaList) { if (eventLogQueryCriteria.DateFrom.HasValue) { var crit = "("; crit += string.Format("TimeCreated[@SystemTime >= '{0}']", ConvertDate(eventLogQueryCriteria.DateFrom.Value)); crit += ")"; criteriaList.Add(crit); } if (eventLogQueryCriteria.DateTo.HasValue) { var crit = "("; crit += string.Format("TimeCreated[@SystemTime <= '{0}']", ConvertDate(eventLogQueryCriteria.DateTo.Value)); crit += ")"; criteriaList.Add(crit); } }
public IList <EventRecord> ReadLogs(IList <string> serversList, EventLogQueryCriteria criteria) { EventLogQuery query = new EventLogQuery("Application", PathType.LogName, _eventLogCriteriaConverter.Convert(criteria)); List <EventRecord> returnList = new List <EventRecord>(); List <Thread> threadList = new List <Thread>(); foreach (var server in serversList.Distinct()) { var t = new Thread(() => returnList.AddRange(_eventLogReaderService.ReadLogs(server, query, criteria.DescriptionContains))); t.Start(); threadList.Add(t); } threadList.ForEach(x => x.Join()); returnList = returnList.OrderBy(x => x.TimeCreated).ToList(); return(returnList); }
public void ExecuteSearch() { var crit = new EventLogQueryCriteria() { ProvidersName = string.IsNullOrWhiteSpace(ProviderName) ? new List <string>() : ProviderName.Split(';').ToList(), DateFrom = DateFrom, DateTo = DateTo, EventLogEntryTypeList = SelectedEntryTypeList, DescriptionContains = string.IsNullOrWhiteSpace(Contains) ? new List <string>() : Contains.Split(';').ToList() }; List <string> serversList = new List <string>(); if (SelectedCategories != null && SelectedCategories.Any()) { serversList.AddRange(SelectedCategories.SelectMany(x => x.ServerList).Select(x => x.Name)); } if (!string.IsNullOrEmpty(ManualServers)) { serversList.AddRange(ManageManualServerList(ManualServers)); } if (serversList.Any()) { var logs = _eventLogReaderManager.ReadLogs(serversList, crit); if (logs != null && logs.Any()) { EventResultList = new ObservableCollection <Event>(logs.Select(x => new Event(x)).ToList()); } else { EventResultList = new ObservableCollection <Event>(); MessageBox.Show("No events found with the current criteria"); } RaisePropertyChanged("EventResultList"); } else { MessageBox.Show("No servers has been selected!"); } }
public void CheckChargeOnLocalhost() { var serversList = new List <string>(); serversList.Add("localhost"); serversList.Add("localhost"); serversList.Add("localhost"); serversList.Add("localhost"); serversList.Add("localhost"); var crit = new EventLogQueryCriteria(); var r = _eventLogReaderManager.ReadLogs(serversList, crit); r = _eventLogReaderManager.ReadLogs(serversList, crit); r = _eventLogReaderManager.ReadLogs(serversList, crit); r = _eventLogReaderManager.ReadLogs(serversList, crit); r = _eventLogReaderManager.ReadLogs(serversList, crit); r = r.OrderBy(x => x.TimeCreated).ToList(); Assert.IsTrue(r.Any()); }
public void NoCriteria() { var criteria = new EventLogQueryCriteria(); var queryString = _eventLogCriteriaConverter.Convert(criteria); var r = _eventLogReaderService.ReadLogs("localhost", new EventLogQuery("Application", PathType.LogName, queryString), null); }