Tag: 日志文件

在java中读取日志文件

是否可以使用java读取日志文件(abc.log)? 我想从我的日志文件中获取特定的字符串。 假设这是我的日志文件的内容。 我只想要时间戳(例如:05:08:37)并将其打印到控制台。 2012-12-16 05:08:37,905 [Thread-1] INFO com.submit.SubmitService – Wait time 500 2012-12-16 05:08:38,444 [Thread-1] INFO com.submit.SubmitService – NO OF RECORDS TILL NOW 3755 TOTAL TIME — << 539 2012-12-16 05:08:38,668 [Thread-1] INFO com.submit.SubmitService – Active Connection:: -69076 2012-12-16 05:08:38,670 [Thread-1] INFO com.submit.SubmitService – Active Connection:: -65764

如何在不保持文件打开的情况下跟踪Java中的“Tail -f”这样的文件(防止重命名/删除)

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