Было высказано несколько запросов на поддержку лучшей программной конфигурации для Log4j 2. Извините, это заняло так много времени. Начиная с Log4j 2.4, API был добавлен в log4j-core, чтобы облегчить programmatic configuration.
Новый API ConfigurationBuilder
позволяет пользователям создавать компоненты определения. С помощью этого API нет необходимости работать непосредственно с реальными объектами конфигурации (такими как LoggerConfig и FileAppender), которые требуют большого количества знаний о том, как Log4j работает под капотом. Определения компонентов добавляются в ConfigurationBuilder, и как только все определения будут собраны, будут созданы все фактические объекты конфигурации (такие как Loggers и Appenders). Он немного похож на синтаксис конфигурации XML, за исключением того, что вы пишете Java-код.
Обратите внимание, что новый API ConfigurationBuilder
позволяет коду пользователя создавать новую конфигурацию или полностью заменять существующую конфигурацию. Если ваш вариант использования отличается, и вы хотите программно изменить (а не заменить) существующую конфигурацию после запуска Log4j, вам необходимо будет работать с реальными объектами конфигурации. В этом случае см. Раздел Programmatically Modifying the Current Configuration after Initialization руководства.
Это всего лишь дубликат, потому что это должен быть вопрос log4j2. Связанный вопрос относится к log4j1 (который даже не раскрывает те же методы, что и log4j2) и slf4j. –
Я не уверен, что те, кто закрыл этот вопрос, знают, что это такое. –
В качестве обходного пути я удалил log4j2 и перенесен в Log4J («Log4J1»), который позволяет динамическое построение из XML-конфигураций. –