in java TailListener,how to avoid duplicate log messages
my code is given below .
public static void main(String[] args) {
// TODO code application logic here
File pcounter_log = new File("c:\development\temp\test.log");
try {
TailerListener listener = new PCTailListener();
Tailer ta开发者_开发知识库iler = 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);
}
}
.ie, i am monitoring the log file.whenever log messages updated in log file(c:\development\temp\test.log),it will print the log message.
The problem is,whenever log messages updated in log file,it displaying the same log message by two times and also some times by three or four times.how to avoid this duplicate log messages.
One of the reasons for the duplicate messages is that if you are using the Tailer.create static method to create the Tailer, it automatically starts the process of monitoring the log.
We make the mistake of doing a tailer.run which starts another monitoring instance and prints the same entries twice.
Following code removed the issue with two invocations of the TailerListenerAdapter:handle function.
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();
Looking at the code of Tailer, I can't see how that can happen. Are you sure that you aren't running multiple copies of the tailer, and that the messages aren't actually duplicated in the log file.
精彩评论