Ошибка EventLog при чтении значения logEntry.EntryType - PullRequest
0 голосов
/ 01 июня 2011

У меня есть код для получения информации из журналов событий.

  protected void Page_Load(object sender, EventArgs e)
    {
   EventLog eventLog = new EventLog("Application", ".");

   getEvents(eventLog.Entries);
     }


private void getEvents(EventLogEntryCollection  eventLogEntryCollection)
    {

        foreach (EventLogEntry logEntry in eventLogEntryCollection)
        {                
            if (logEntry.Source.Equals("yen"))
            {
                eventType.Add(logEntry.EntryType.ToString());
                eventTime.Add(logEntry.TimeWritten);
                eventSource.Add(logEntry.Source);
                eventCategory.Add(logEntry.Category);
                eventID.Add(logEntry.EventID);
                eventMsg.Add(logEntry.Message.ToString());
                Global.logger.Info("Level = " + logEntry.EntryType.ToString() + ", eventTime = " + logEntry.TimeWritten);
            }
        }
    }

, поэтому logEntry.EntryType.ToString () иногда возвращает мне информацию, ошибку, предупреждение, а иногда просто 0. что это за 0 для ??

Пожалуйста, любые предложения

логи показывают это:

ИНФОРМАЦИЯ 01-Jun-2011 11: 48: 18.SSS 8. Глобальный - Уровень = Информация, eventTime = 20.05.2011 15:19:08 ИНФОРМАЦИЯ 01-Jun-2011 11: 48: 18.SSS 8. Глобальный - Уровень = 0, EventTime = 20.05.2011 15:19:16

Ответы [ 2 ]

1 голос
/ 01 июня 2011

Это может произойти, только если ваш журнал событий как-то поврежден.Что происходит, когда вы пытаетесь просмотреть это событие с помощью eventvwr.msc?Я видел много поврежденных журналов событий.Обычно это происходит, когда в одно и то же время регистрируется много событий.Я никогда не находил четкого репродукции, но это время от времени происходит даже в Windows Server 2008, хотя вся подсистема журнала событий была переписана.

0 голосов
/ 03 февраля 2014

Перечисления System.Diagnostics.EventLogEntryType определяют пять значений: Error, FailureAudit, Information, SuccessAudit и Warning.Но если вы посмотрите документацию на встроенную функцию WinAPI ReportEvent , вы увидите, что на самом деле существует шесть типов событий.Событие с кодом 0 - EVENTLOG_SUCCESS, описание которого совпадает с EVENTLOG_INFORMATION_TYPE.Он также отображается как «Информация» средством просмотра событий.

Так что, вероятно, logEntry.EntryType.ToString () == "0" означает, что событие было зарегистрировано с типом EVENTLOG_SUCCESS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...