如何检查何时在日志文件中添加新行 - Java

时间:2014-09-03 10:48:35

标签: java logging

我尝试使用java中的简单脚本来监控日志文件。 如何在再次运行脚本时检查文件是否已更改。 脚本应检查发生的是短语" Unable" 我的脚本每5分钟运行一次(Windows Scheduler)

我的代码:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;


   public class LogAgent {

      public static void main(String[] args)
      {
      double count = 0,countBuffer=0,countLine=0;
      String lineNumber = "";
      String filePath = "/Users/Radek/log.txt";
      BufferedReader br;
      String inputSearch = "Unable";
      String line = "";

try {
    br = new BufferedReader(new FileReader(filePath));
    try {
        while((line = br.readLine()) != null)
        {
            countLine++;
            //System.out.println(line);
            String[] words = line.split(" ");

            for (String word : words) {
              if (word.equals(inputSearch)) {
                count++;
                countBuffer++;
              }
            }

            if(countBuffer > 0)
            {
                countBuffer = 0;
                lineNumber += countLine + ",";
            }

        }
        br.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
}
    if (count == 0)
    {
         System.out.println("Stan poprawny");
    }
    else
    {
System.out.println("Liczba wystapien alertu--"+count);
// System.out.println("Alert w liniach--"+lineNumber);
    }
}
}

1 个答案:

答案 0 :(得分:0)

我一直在使用类似的系统,其中"日志代理"保持自己的日志记录它从它监视的日志文件中读取的字节数。因此,每次运行代理程序时,都会将字节数写入另一个文件。启动代理程序时,它会以字节数读回并在再次读取实际日志文件之前跳过该字节数。它运作良好,我建议这样做。或者,您可以保存读取的行数而不是字节数,然后使用它。