文件 io - 在java TailListener中,如何避免重复的日志消息



我的代码如下。

public static void main(String[] args) {
        // TODO code application logic here
        File pcounter_log = new File("c:developmenttemptest.log");
    try {
        TailerListener listener = new PCTailListener();
        Tailer tailer = new Tailer(pcounter_log, listener, 5000,true);
        Thread thread = new Thread(tailer);
        thread.start();
    } catch (Exception e) {
        System.out.println(e);
    }
}
public class PCTailListener extends TailerListenerAdapter {
 public void handle(String line) {
  System.out.println(line);
 }
}

每当日志文件(C:\Development\temp\test.log)中更新日志消息时,它都会打印日志消息。

问题是,每当日志文件中的日志消息更新时,它都会显示两次相同的日志消息,有时还会显示三到四次,如何避免这种重复的日志消息。

重复消息的原因之一是,如果您使用 Tailer.create 静态方法创建 Tailer,它会自动启动监视日志的过程。

我们犯了一个错误,做了一个 tailer.run,它会启动另一个监视实例并打印相同的条目两次。

以下代码消除了两次调用 TailerListenerAdapter:handle 函数的问题。

TailerListener listener = new TailerListener(topic);
Tailer tailer = new Tailer(new File(path), listener, sleep, true);
Thread thread = new Thread(tailer);
thread.setDaemon(true);
thread.start(); 

看看泰勒的代码,我看不出这是怎么发生的。 是否确定您没有运行尾矿的多个副本,并且消息实际上并未在日志文件中重复。

相关内容

  • 没有找到相关文章

最新更新