Ответ 1
Возможно, вам стоит рассмотреть классы apache commons io, в частности классы Tailer/TailerListener. См. http://www.devdaily.com/java/jwarehouse/commons-io-2.0/src/main/java/org/apache/commons/io/input/Tailer.java.shtml.
Мне нужно отслеживать файл журнала для шаблона. Файл журнала постоянно записывается приложением.
Я не хочу изобретать колесо. Я ищу Java API. Я написал программу для чтения файла и поставил цикл с 30-секундным сном, но это не соответствует всем критериям.
Возможно, вам стоит рассмотреть классы apache commons io, в частности классы Tailer/TailerListener. См. http://www.devdaily.com/java/jwarehouse/commons-io-2.0/src/main/java/org/apache/commons/io/input/Tailer.java.shtml.
Эти два API могут быть полезны:
JxFileWatcher (официальный сайт)
Читайте здесь, что он способен
JNotify - это Java-библиотека, которая позволяет java-приложению прослушивать события файловой системы, например:
Созданный файл
Файл изменен
Переименованный файл
Удаленный файл
Если вы используете Log4j или можете его интегрировать, можно добавить выходы журнала к удобному объекту, например a StringBuffer, как это обсуждалось в этом связанном вопросе: Пользовательское ведение журнала для сбора сообщений во время выполнения
Это выглядит так: Реализация Java Tail
По существу вы используете BufferedReader. Отслеживание, где вы остановились, будет чем-то, что вам нужно будет добавить, возможно, захватить последнюю строку?
Этот же вопрос ссылается на JLogTailer, который выглядит интересным и может сделать большую часть того, что вы хотите.