Работая с несколькими процессами, которым требуется доступ к одному файлу примерно в одно и то же время (часто один процесс сразу за другим), я обнаружил (вместе с другими разработчиками, с которыми работал), что файл "трейлера"полезно использовать для указания, когда один процесс завершает взаимодействие с файлом, к которому должен обращаться другой процесс.
Я не уверен, как часто ваш веб-сервер записывает в этот журнал, а также как быстро ваш Java-процессНеобходимо прочитать его, но если между доступом каждого файла к файлу может пройти промежуток времени, может быть записан файл трейлера, который указывает, когда ваш веб-сервер завершил запись в файл.Ваш Java-процесс может сначала проверить, существует ли файл трейлера, а затем, найдя его, удалить и затем прочитать из журнала.
В противном случае вам может понадобиться использовать команды ОС, чтобы выяснить, выполняет ли ваш веб-сервер запись ввойти и только запустить программу чтения журнала, когда это не так.http://blog.bensmann.com/executing-operating-system-commands содержит некоторую полезную информацию о выполнении команд ОС в Java.
Суть в том, что должен быть какой-то определенный пробел, установленный таким образом, что эти процессы не читают / записывают в журналв то же время.