动态监视日志文件

时间:2011-10-03 14:15:28

标签: java logging

我需要监视模式的日志文件。日志文件不断由应用程序写入。

  1. 应用程序可以在程序读取时添加新的日志语句。
  2. 当日志大于200 MB或在当天结束时,日志会被翻转,因此我的程序应该动态处理文件名的更改。
  3. 如果我的程序因任何原因崩溃,则必须从中断处继续。
  4. 我不想重新发明轮子。我正在寻找一个Java API。我写了一个程序来读取文件并放入一个30秒睡眠循环,但这不符合所有标准。

4 个答案:

答案 0 :(得分:4)

您可以考虑查看apache commons io类,特别是Tailer / TailerListener类。见http://www.devdaily.com/java/jwarehouse/commons-io-2.0/src/main/java/org/apache/commons/io/input/Tailer.java.shtml

答案 1 :(得分:2)

这两个API可能会有所帮助:

1

JxFileWatcher (Official Site)

Read here what it is capable of


2

Jnotify

JNotify是一个java库,允许java应用程序监听文件系统事件,例如:

  • 创建文件

  • 文件已修改

  • 文件已重命名

  • 文件已删除

答案 2 :(得分:2)

如果您正在使用Log4j,或者可以将其集成,则可以将日志输出附加到方便的对象,例如StringBuffer,因为在此相关问题中已对此进行了讨论:{ {3}}

答案 3 :(得分:1)

看起来类似:Implementation of Java Tail

基本上你使用BufferedReader。跟踪你离开的地方将是你必须添加的东西,也许捕获最后一行读取?

同样的问题引用了JLogTailer,它看起来很有趣,并且可以完成你想要的大部分工作。