EventLogEntryオブジェクトを取得し、それらを処理するために、Eventlog.Entries(c#.NET 4.0)を使用してアプリケーションイベントログを読んでいます。新しいイベントがイベントログに書き込まれると、EventLogEntry.Indexプロパティは常に増加するように見えます。イベントログをクリアしても、EventLogEntry.Indexはリセットされません。EventLogEntry.IndexがMaxIntに達するとどうなりますか?
EventLogEntry.Indexがmaxintに達した場合はどうなりますか?オペレーティングシステムはインデックスをリセットしましたか?
私はサーバ(win2008R2)上で動作するサービスを書いており、非常に多くのイベントログが発生すると想定しなければなりません。最終的には21億に達するでしょう。
実際に起こったときに何が起こるかを知っておく必要がありますが、非常に多くのログレコードで実用に耐えています。私は[管理ポリシー](https://technet.microsoft.com/en-us/library/cc721981(v= ws.11).aspx)を設定して、常に管理可能なログサイズを確保しています。また、EventLogがログメッセージの正しいシンクであるかどうかを検討する必要があります。たぶん別の手法(ログファイル、リングバッファなど)が良い解決策かもしれません。 –
イベントを上書きするようにイベントログが設定されていても、管理可能なログサイズを指定すると、インデックスは引き続き大きくなります。私が書いたように、ログをクリアしてもインデックスはリセットされません。これを実際に使用するには、SQL Serverデータベースに選択したイベントログを格納して分析し、アーカイブする必要があります。 – Pelle
はい、そうです。私はあなたの質問で、 "EventLogEntry.Indexをリセットしません"イベントログをクリアすることを忘れました、申し訳ありません。 (実際には、それも[希望の動作]であるようです(https://social.technet.microsoft.com/Forums/itmanagement/en-US/25c7bdba-258b-44e6-87ba-d40e68b6b4e2/resetting-the-eventrecordid-for -a-windows-2008-r2-event-log?forum = winservergen);これについて考えると意味があります...) –