我想监视我的日志,所以我正在使用Commons IO Tailer。我有一个应用程序,将一个日志文件拖到硬盘上并解析每个日志行。我想知道应用程序重新启动或关闭时的最后拖尾位置。
问题在于Tailer不知道尾行是什么。它只是“打印”附加到日志文件的行。
我的尾巴:
public static void startTailing(){
TailerListener listener = new TailerListener();
try{
String logPath = PropertiesLoader.getLogPath();
File logFile = new File(logPath);
Tailer tailer = new Tailer(logFile, listener, TAIL_DELAY);
tailer.run();
}catch(Exception e){
e.printStackTrace();
}
}
我的听众:
public class TailerListener extends TailerListenerAdapter {
@Override
public void handle(String line) {
LineParser parser = new LineParser();
//parsing each line
parser.parseLogLine(line);
}
}
例如,该应用程序记录了1500条日志行,然后由于某种原因关闭了该应用程序,日志获得了+2000条新行。当我重新启动应用程序时,尾部将仅显示最后几行,并且将错过大多数行。在重新启动或关闭的情况下,如何获得完整的2000行。