2

特定のメッセージを探して、2 分間の継続的なスケジュールで、Linux ボックス上の Java でログ ファイルを読んでいます。最後のオフセット (RandomAccessFile getFilePointer) を保存し、LastModified が変更されたことを検出すると、そこから読み取ります。これはベストプラクティスですか、それとも正しいですか?

4

3 に答える 3

4

Java 7 を使用している場合は、WatchService を使用して、ディレクトリ内のファイルが変更されたときに通知することができます。これは割り込みに似ており、継続的なポーリングは必要ありません。WatchService の詳細については、こちらを参照してください。それ以外の場合は、既に行っているポーリング方法を使用することをお勧めします。

于 2013-01-21T11:10:55.530 に答える
2

この Tailer を試してください: http://commons.apache.org/io/apidocs/org/apache/commons/io/input/Tailer.html

これは、"tail -f" Unix 機能の Java 実装です。

于 2013-01-21T11:11:14.957 に答える
1

ファイルの変更、またはディレクトリ内のコンテンツの変更を検出するために、そのディレクトリを監視して、新しいコンテンツ、既存のコンテンツの変更、ディレクトリ内の既存のコンテンツの削除を確認できます。

投稿を参照してください: Java の変更を監視するディレクトリ

于 2013-01-21T11:11:16.873 に答える