0

我正在尝试使用 EventLogReader(eventLogQuery) 类从具有大约 100 000 条记录的服务器读取事件日志。

我正在使用分页,每个页面在我的屏幕上只会显示 25 条记录。因此,我将在第一页的总记录中读取 25 条记录,在第二页读取接下来的 25 条记录,依此类推。

我的问题是如何获取以下代码段的总记录数,例如由于该 eventLogQuery 而受影响的总行数。

EventLogReader reader = new 
EventLogReader(eventLogQuery);
                reader.Seek(SeekOrigin.Begin, filter.PageStart);

eventLogs.TotalLogs = **totalRowsAffected**;                    
EventRecord eventInstance = reader.ReadEvent();

int i = filter.PageSize;
while (eventInstance != null && i-- > 0)
{
 try
 {
  eventLogs.Entries.Add(new EventLogData
  {
   Type = eventInstance.LevelDisplayName,
   Source = eventInstance.ProviderName,
   Time = eventInstance.TimeCreated,
   Category = eventInstance.TaskDisplayName,
   EventId = eventInstance.Id,
   User = eventInstance.UserId != null ? eventInstance.UserId.Value : "",
   Computer = eventInstance.MachineName,
   Message = eventInstance.FormatDescription(),
   FullXml = eventInstance.ToXml()
  });
 }catch{}
eventInstance = reader.ReadEvent();
}
}
return eventLogs;
4

1 回答 1

0

我认为您可以使用以下内容来获取事件日志中的条目总数。

var myEventLog = new EventLog();
myEventLog.Log = myLogName;
entries = myEventLog.Entries;
var total = entries.Count;
于 2018-02-16T10:26:35.827 回答