2011-10-09 22 views
8

Desc順序モードでEventLogReaderを使用しますか?

で使う
 EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString); 
    EventLogReader logReader = new EventLogReader(eventsQuery); 

ログイベントを読むために。

最新のの使用法を見つける必要がある #xxx nevermind

1--->100から始める1--->100

100--->1から始める必要があるので、 最初の(私のクエリを満たす)とループを解除します。

I 仲介人DATA BUFFERを使用してからreverseを使用しないようにします。

p.s. - 私のログファイルは約400MBです。 (win7)。

答えて

10

あなたはEventLogQueryクラスにReverseDirectionプロパティを使用することもできます。

EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString); 
eventsQuery.ReverseDirection = true; 

EventLogReader logReader = new EventLogReader(eventsQuery); 

希望を、このことができます。

+0

あなたは男だ....... –

+0

は、それは、C# –

+0

@Royi Namirを使用して、イベント・ログからの最後のイベントを読み込むための最速の方法です:それは最速の方法です?これは、プログラミングしているアプリケーションの種類によって異なります。アプリケーションが常時稼働している場合、イベントログを繰り返し照会するのではなく、特定のイベントが発生するように登録することができます。 – Hans

0

イベントビューアの最後のXXイベントだけを必要とする場合は、EventLogReaderを使用する必要はありません。私はVista/Windows2008/Win7に限定されているのでELRを使用しないことを好みます。 .NETでoldschool EventLogオブジェクトを使用してこれを行うには、「Entries」オブジェクトでインデクサーを使用するだけです。次のスニペットでの例:

 EventLog log = new EventLog("Application"); 
     for (int counter = 1; counter <= sizeToGet; counter++) 
     { 
      string msg = log.Entries[log.Entries.Count - counter].Message; 

      Console.WriteLine(msg) 
     } 
関連する問題