Я работаю над программой мониторинга, которая читает файл /var/log/auth.log. Я использую класс Apache Commons IO Tailer
для чтения файла в режиме реального времени. Для начала я хотел протестировать часть чтения в реальном времени на простом файле и вручную ввести код в строке консоли. Вот мой код:
public class Main {
public static void main(String[] args) {
TailerListener listener = new MyListener();
Tailer tailer = Tailer.create(new File("log.txt"), listener, 500);
while(true) {
}
}
}
public class MyListener extends TailerListenerAdapter {
@Override
public void handle(String line) {
System.out.println(line);
}
}
А из терминала: sudo echo "Hello" >> log.txt
Проблема в том, что когда я пытаюсь вручную что-то написать в файл, он не печатает это в консоли. Я пытался найти конкретный пример использования класса Tailer, но безуспешно. Что я здесь делаю неправильно?
while(true) {}
никогда не бывает хорошей идеей. Вы запускаете MyListener в отдельном потоке? Вы должны по крайней мере добавитьThread.sleep(...)
в свой цикл. - person SebastianH   schedule 10.04.2014