public string Convert(EventLogQueryCriteria eventLogQueryCriteria)
        {
            var query = "<QueryList>" +
                        "  <Query Id=\"0\">" +
                        "    <Select>" +
                        "        *[System[((Level = 4) or (Level = 3)) " +
                        "          and TimeCreated[timediff(@SystemTime) &lt;= 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);
        }
Exemplo n.º 4
0
        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 &gt;= '{0}']", ConvertDate(eventLogQueryCriteria.DateFrom.Value));
                crit += ")";
                criteriaList.Add(crit);
            }

            if (eventLogQueryCriteria.DateTo.HasValue)
            {
                var crit = "(";
                crit += string.Format("TimeCreated[@SystemTime &lt;= '{0}']", ConvertDate(eventLogQueryCriteria.DateTo.Value));
                crit += ")";
                criteriaList.Add(crit);
            }
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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!");
            }
        }
Exemplo n.º 11
0
        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);
 }