如何在不打开文件的情况下跟踪像Java中的“Tail -f”那样的文件(防止重命名/删除)
我想从Java应用程序中“Tail -f”很多日志文件。
我通过监视大小和上次更新,并在文件大小或上次更新时间发生变化时重复打开文件并读取最后几个字节来实现这一点 - 然后立即关闭它。
这似乎有问题,因为当记录器决定重命名文件时,我可能会将其打开,这将导致某种问题。
我还想检测一个“滚动”文件,其机制比注意到文件大小减小更确定...似乎容易出错,但不太可能。
由于我似乎无法访问文件描述符或其他低级文件实用程序,我可能无法重现尾部的行为 - 但是有什么技巧可以在不“锁定”文件以进行重命名/删除的情况下读取文件(Windows 7)
我猜另一种可能性是实际生成一个 tail -f 进程并读取进程输出,但这似乎有点沉重 - 我在这里扫描了 60 个日志文件,其中一些有很多输出(大多数将空闲)。