如何读取将翻转的Windows中的日志文件?

时间:2013-02-28 16:11:07

标签: java logging nio

在Linux中打开文件的输入流时,另一个进程可以重命名该文件。因此,当文件翻转时,您仍然可以从流中读取。在Windows中,当您打开输入流时,在关闭输入流之前无法重命名该文件。如何阅读文件而不影响重命名'过程

我尝试过使用java.nio.FileChannel。它适用于通过不同进程(例如Java进程读取和记事本写入)同时读取和写入文件,但不能用于重命名文件(例如,Java进程读取但重命名命令不起作用)。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案如下(我只是从我的一条评论中复制)

读完新附加的行后,关闭阅读器,这样另一个尝试进行旋转的进程就会成功。但是,进行日志轮换的过程必须尝试多次,直到它看不到其他进程正在从中读取。

apache commons IO Tailer可以做到这一点。