小弟最近遇到麻烦,我要对一个log文件进行处理,但是这个log文件时实时更新的,如何用java保证我能够及时处理掉这些log呢?如何对其进行实时监控?并实时处理呢?

解决方案 »

  1.   

    用Timer吧。
    处理日志文件时记录下上次读取到的行数,以及上次更新的时间。
    当文件修改时间变了之后再从上次读到的行数继续往下读。
      

  2.   

    最好的是用LogFileTailer http://code.google.com/p/peter-bochs/source/search?q=log&origq=log&btnG=Search+Trunk用法:
    LogFileTailer tailer = new LogFileTailer(new File("jmp.log"), 1000, false);
    tailer.addLogFileTailerListener(this);
      

  3.   

    使用jdk7的话,现在也有文件系统监视了
      

  4.   

    已经使用了这个方法,现在能够实时地输出日志文件了。像这样:
    public void newLogFileLine(String line) {

    System.out.println(line);
    }但是当我在这个函数中加入字符串处理代码的时候,程序就开始出错了。不停地处理同样一行log(就是更新后第一个被加入的那行)这是什么问题呢?