Я работаю над небольшим Java-приложением (Java 1.6, Solaris), которое будет использовать несколько фоновых потоков, чтобы отслеживать серии текстовых файлов для строк вывода, которые соответствуют определенному шаблону регулярных выражений, а затем использовать эти строки. У меня есть одна нить на файл; они записывают интересующие строки в очередь, а другой фоновый поток просто отслеживает очередь, чтобы собрать все интересующие линии по всей коллекции отслеживаемых файлов.
Одна проблема, с которой я столкнулся, - это когда один из файлов, которые я отслеживаю, открывается снова. Многие из приложений, которые создают файлы, которые я отслеживаю, просто перезапускают свой лог-файл при перезапуске; они не присоединяются к тому, что уже есть.
Мне нужно, чтобы приложение Java обнаружило, что файл был открыт повторно, и перезапустите его после файла.
Как мне лучше всего это сделать?