クラス EventLogReader(eventLogQuery) を使用して、約 100 000 レコードを持つサーバーからイベントログを読み取ろうとしています。
ページネーションを使用していますが、各ページには画面に 25 レコードしか表示されません。したがって、最初のページの全レコードから 25 レコードを読み取り、2 ページ目の次の 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;