в Java TailListener, как избежать дублирования сообщений журнала - PullRequest
2 голосов
/ 07 мая 2011

мой код указан ниже.

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 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);
 }
}

.ie, я отслеживаю файл журнала. Когда сообщения журнала обновляются в файле журнала (c: \ development \ temp \ test.log), он выводит сообщение журнала.

Проблема заключается в том, что всякий раз, когда сообщения журнала обновляются в файле журнала, оно отображает одно и то же сообщение журнала два раза, а также несколько раз - три или четыре раза. Как избежать дублирования сообщений журнала.

Ответы [ 3 ]

5 голосов
/ 15 сентября 2015

Одной из причин появления дублированных сообщений является то, что если вы используете статический метод Tailer.create для создания Tailer, он автоматически запускает процесс мониторинга журнала.

Мы делаем ошибку, делаяtailer.run, который запускает другой экземпляр мониторинга и печатает одни и те же записи дважды.

0 голосов
/ 22 января 2019

Следующий код устранил проблему с двумя вызовами функции 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(); 
0 голосов
/ 07 мая 2011

Глядя на код Tailer, я не вижу, как это может произойти. Вы уверены, что не запускаете несколько копий тейлера и что сообщения фактически не дублируются в файле журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...