ファイルの末尾に文字列を追加するプログラム(トラップレシーバー)があります。このプログラムは基本的に、実行するすべてをログに記録します。
プログラムにそのログ ファイルを読み取らせたい。これを行うとどのような問題に直面する可能性があり、これを行う最も効率的な方法は何ですか。別のプロセスがファイルを更新している間にファイルを読み取る。
ファイルの末尾に文字列を追加するプログラム(トラップレシーバー)があります。このプログラムは基本的に、実行するすべてをログに記録します。
プログラムにそのログ ファイルを読み取らせたい。これを行うとどのような問題に直面する可能性があり、これを行う最も効率的な方法は何ですか。別のプロセスがファイルを更新している間にファイルを読み取る。
このロガーは、ほとんどのロガーと同様に、あらゆる種類の文字列を追加するだけでなく、行全体を追加するとします。
何もない場合は単純に bufferedReader を使用して待つことができます:
BufferedReader br = new BufferedReader(new FileReader("path"));
String line;
while (true) {
line = br.readLine();
if (line != null) {
// do something
} else {
Thread.sleep(DELAY); // DELAY could be 100 (ms) for example
}
}
もちろん、アプリケーションで実行する他のタスクがある場合は、別のスレッドでこれを行う必要があります。
非常にまれなロギングの場合にプルを避けたい場合は、監視サービスを使用できますが、単純なファイルで試したことはなく、常に信頼できるかどうかはわかりません.