Я предлагаю подход высокого уровня, чтобы справиться с этим (предположим, что у вас нет доступа к конфигурации регистратора)
- Наблюдайте шаблон записи журнала (часто тот же самый, поэтому я взял jbosslog):
09: 42: 55,142 DEBUG [org.jboss.as.config] (поток службы MSC 1-6) Настроенные системные свойства ...
Итак, шаблон для различения, когда начинаются новые записи журнала:
ВРЕМЯ] [пробел] [LOG_LEVEL] [пробел] [classeName] [пробел] [нить] [сообщение
Реализация считывателя
Для простоты я предлагаю вам сохранить записи журнала в виде списка.
Ниже приведен простой алгоритм для вашего считывателя:
open stream
While end of log file is not reach
reading
if the line starts with the pattern “TIME][space][LOG_LEVEL…” then
extract the log level of what you read until now
if logLevel equals error then
persist what I read until now excluding the current line
create a new log record object
else
clear your log record object
endif
endif
Store the current line into your log record object
End of while
close stream
В вашем приложении попросите пользователя загрузить файл журнала, и вы сможете просто запустить свое устройство чтения и отобразить результат.
Существует много способов реализовать устройство чтения, поэтомуесли вы реализуете проверку концепции, просто создайте в java программу чтения, которая будет читать строку за строкой, например: java 8 stream читает файл строка за строкой
Когда это работает, вы можетесоблюдайте конкретно запись журнала выписки именно то что вам нужно ...