2012-02-08 3 views
0

ログファイルのデータを解析し、データベースに送り込み、ログファイルをパージします。FileSystemWatcherを絞ることができますか、またはTimerをより良いオプションにできますか?

FileSystemWatcherコンポーネントを使用してChangeイベントを監視することもできますが、ログファイルはほとんど常に「常に」書き込まれているため、イベントは直感的に発生します。私はdb connectionをwilly-nillyで開閉したくない。

私の現在の本能は、タイマーを使用し、(時間またはファイルの時間とサイズに基づいて)非常に頻繁にログファイルを解析/パージ/パージすることです。

シナリオ(デザインパターン)を処理する共通の方法と実績のある方法はありますか?

更新:FileSystemWatcherにNotifyFilterプロパティがあり、フィルタ可能なものの1つが「サイズ」であることがわかります。私は推測しています(まだ検証が見つかりませんでした)、ファイルのサイズが1KB変わるたびに発生します。これは合理的な「スロットル」になります。実際の場合は...

答えて

1

これがデザインパターンであるかどうかはわかりませんが、実際にログファイルに書き込む前にバッファする量を制御すると、頻度を最小限に抑えることができます。

+0

ログファイルを書き込んでいるアプリケーションには影響したくありません。彼らはこの解析/ポンピング/パージについて知っている/心配する必要はありません。 –

+0

要件、要件...彼らが何であるかを知っているといつでもより簡単です!いずれにしても、ログファイルへのアクセスを制御するというより難しい問題があると思います。アプリがそれに書き込んでいる場合、どのようにパージすることができますか? –

+0

はい、そうです。私は/これをコーディングボードに戻して考え直さなければならない... –

1

変更イベントはここでもうまくいきます。私は修正タイムスタンプを見てタイマーを使ってファイルを定期的にチェックします(特に誰かがファイルを削除/再作成した場合は特に作成します)。

1

ログファイルの生成を制御していますか?そうであれば、特定のログサイズになるたびに新しいログファイルを作成し、古いログファイルの名前を特定の形式に変更します。次に、 "アーカイブ"ログファイル用のファイルシステムウォッチャーフィルターを作成し、作成時にそれらを処理します。

+0

私の他のコメントを参照してください(私はこのアプリを他の人と結合したくありません) –

関連する問題