Tomcatのログファイルを読み込む必要があります。しばらくして(たとえば1時間)、ファイルをもう一度読み込みます(新しい追加されたコンテンツのみ)ので、RandomAccessFileを作成します完了した最後の位置を記録し、BufferedReader.readLine()メソッドを使用します。書き込み中にファイルを読む
ただし、ファイルの行全体を読み取ることができないことがあります。例えば
は、Tomcatは、以下の内容を記述するためにトリングれる(単なる例):192.168.0.0のローカルホスト/index.htmlが.....
そして、この瞬間に
01:、私は読んだとき、私は結果を得ることができます192.168.0 0ローカルホスト/index.htmlが.....
または
言うことだ192.168.0.0のローカルホスト/index.htmlが.....
この行が書かれている場合は、私の読者はuncompleteラインをお読みください。
私は読んでいる行が完成したかどうかを決める考えがあるのだろうか?
raf = new RandomAccessFile(file, "r");
raf.seek(pos);
while ((line = raf.readLine()) != null) {
System.out.println(line);
}
pos = raf.getFilePointer();
raf.close();
私が試してみました。この(追加contidtion):
raf = new RandomAccessFile(file, "r");
raf.seek(pos);
while ((line = raf.readLine()) != null) {
if(line.chartAt(line.length()-1)=='\n'){
System.out.println(line);
} else
raf.seek(pos); //roll back to the last position
}
pos = raf.getFilePointer();
raf.close();
しかし、それは動作しません。..
任意のアイデア
これは、コアコードのですか?
いつも最後の行をスキップしますか? – dagge