2011-06-01 26 views
0

我有一個代碼來從事件日誌中獲取信息。讀取logEntry.EntryType值的EventLog錯誤

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?

請任何建議

日誌顯示此:

INFO 01君2011 11:48:18.SSS 8。全球 - 級別=信息,EVENTTIME = 2011年5月20日下午3點19分08秒 INFO 01君2011 11:48:8 18.SSS。全球 - 級別= 0,EVENTTIME =二零一一年五月二十日下午3點19分16秒

回答

1

這僅可以如果您的活動日誌以某種方式損壞,則會發生。當您嘗試使用eventvwr.msc查看此事件時會發生什麼?我見過很多損壞的事件日誌。這通常發生在同時記錄多個事件時。我從來沒有找到明確的repro,但即使在Windows Server 2008上,這種情況也會發生,儘管整個事件日誌子系統已被重寫。

+0

在eventvwr.msc這兩個級別都是信息..如果它是腐敗它應該顯示一些錯誤..所有其他值都很好,除了水平,有時我得到0 ...謝謝雖然..請讓我知道如果你找到更多的信息 – user175084 2011-06-01 19:10:24

0

System.Diagnostics.EventLogEntryType enumumerations定義了五個值:ErrorFailureAuditInformationSuccessAuditWarning。但是如果你看看documentation to native WinAPI ReportEvent function,你會發現實際上有六種類型的事件。代碼爲0的事件是EVENTLOG_SUCCESS,它與EVENTLOG_INFORMATION_TYPE具有相同的描述。它也與事件查看器的「信息」一樣顯示。

因此,可能logEntry.EntryType.ToString()==「0」表示事件記錄類型爲EVENTLOG_SUCCESS