Некоторый контекст
Я пишу приложение, в которое будет подаваться непрерывный поток строк / данных. Данные представляют собой сообщения журнала, но с разных компьютеров и из разных приложений. Поэтому их формат может немного отличаться.
Моя цель - получить отдельные компоненты из каждого сообщения, и независимо от источника, попытаться каким-либо образом нормализовать данные, чтобы общие части, такие как хост, поток, время, сообщение и уровень.
Вопросы
- Есть ли в log4j какая-либо поддержка для чего-то подобного? т.е. взять строку, возвращающую какой-либо объект, который можно использовать для получения части, упомянутой ранее?
- Если нет, есть ли библиотеки для этого или что-то подобное?
- В идеале мне бы хотелось, чтобы я мог предоставить несколько шаблонов для сопоставления, и использовать запасной вариант, который используется по умолчанию, если ни один из других шаблонов не совпадает. Что-нибудь подобное?
Я понимаю, что такие вещи, как Awstats, выполняют синтаксический анализ логов, а что нет, но в этом случае у меня есть только два варианта - использовать библиотеку, которая делает это, или что-то написать, и я бы не стал изобретать велосипед.