У нас есть несколько приложений, которые используют log4j для входа. Я должен получить log4j синтаксический анализатор, работающий, таким образом, мы можем объединить несколько файлов журнала и выполнить автоматизированный анализ их. Я не надеюсь изобретать велосипед, таким образом, кто-то может указать на меня на достойный существующий ранее синтаксический анализатор? У меня действительно есть log4j шаблон преобразования, если это помогает.
В противном случае я должен буду прокрутить наше собственное.
Я не понимал, что Log4J поставляется с приложением XML.
Решение было: указать XML-приложение в файле конфигурации ведения журнала, включить этот выходной XML-файл как объект в правильно сформированный XML-файл, а затем проанализировать XML, используя свой любимый метод.
Другие методы имели следующие ограничения:
То, что вы ищете, называется SawMill или что-то вроде этого .
Лог-файлы Log4j не очень подходят для разбора, они слишком сложные и неструктурированные. Есть сторонние инструменты, которые могут это сделать, я полагаю (например, Sawmill).
Если вам нужно выполнить автоматизированный пользовательский анализ журналов, вам следует подумать о записи журналов в базу данных и анализе этой базы. JDBC поставляется с JdbcAppender
который добавляет все сообщения в базу данных по вашему выбору, но это влияет на производительность, и он немного нестабилен. В Интернете есть и другие, похожие альтернативы (например, эта).
Вы можете использовать Log4j's Chainsaw V2 для обработки различных файлов журналов и сбора их в одну таблицу и либо выводить эти события в виде xml, либо использовать встроенную Chainsaw - фильтрация на основе выражений, поддержка поиска и раскрашивания для нарезки и нарезки журналов.
Шаги: - Запустите Chainsaw V2 - Создайте файл конфигурации бензопилы, скопировав пример файла конфигурации, доступного на вкладке "Добро пожаловать" - определите одну запись "плагина" LogFilePatternReceiver для каждого файла журнала, который вы хотите обработать - Запустите Chainsaw с этой конфигурацией - Каждый файл журнала будет отображаться в виде отдельной вкладки в пользовательском интерфейсе - Приостановите вкладку журнала бензопилы и удалите события из эта вкладка - создайте новую вкладку, которая объединяет события из различных вкладок, перейдя к пункту меню "view, crate custom expression logpanel" и введите "level> = DEBUG" в поле. Он создаст новую вкладку, содержащую события из всех вкладок с уровнем> = отладка (именно поэтому вы очистили вкладку журнала бензопилы).
Вы можете получить обзор синтаксиса выражения, используемого для фильтрации, раскрашивания и поиска, из учебника (доступного из меню «Справка»).
Если вы не хотите использовать бензопилу, вы можете сделать что-то подобное - запустить простое приложение, которое не регистрирует, а загружает файл конфигурации log4j.xml с записями «плагинов», которые вы определили для конфигурации бензопилы, но также определите FileAppender с xmllayout - все события, полученные «получателями», будут отправлены одному приложению.