Log4j2 имена подстановочных знаков

Я использую log4j для регистрации в одном из моих приложений. Логгеры в моем конфиге выглядят так.

<Root level="info">
    <AppenderRef ref="Console"/>
</Root>

<Logger name="org.eclipse.jetty.server.Server" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.util.log" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>
<Logger name="org.eclipse.jetty.server.ServerConnector" level="warn" additivity="false">
    <AppenderRef ref="Console"></AppenderRef>
</Logger>

По сути, мне нужны сообщения уровня "информация" из написанного мной кода, но я хочу, чтобы внешние библиотеки регистрировали только, если что-то является предупреждением или более ужасным.

Это работает, как я мог ожидать, но есть много классов в "org.eclipse.jetty"

Можно ли сделать что-то подобное?

<Logger name="org.eclipse.jetty.*" level="warn">
    <AppenderRef ref="Console" level="warn"></AppenderRef>
</Logger>

То есть я хочу, чтобы все во всем пакете только предупредило / ошибочно / фатально.

Я попробовал вышеупомянутое, и это не имело никакого эффекта. Есть ли "шаблон" или что-то, что я могу использовать, чтобы настроить регистратор для всего в пакете?

2 ответа

Решение

Для конфигурации на основе свойств вы просто берете имя пакета без подстановочных знаков. Должен работать с XML тоже:)

У меня похожая проблема, но у меня есть множество классов в пакете библиотеки Apache kafka, и мне просто нужно включить ведение журнала для различных пакетов, имена которых соответствуют регулярному выражению,org.apache.kafka*.clients.

В будущем, если я обновлю свою библиотеку Kafka, может быть добавлена ​​поддержка Kafka Producer с версией выше 2.6, и будет производитель для поддержки соответствующей версии, например, может быть версия 2.8 для производителя с именем пакета org.apache.kafka280. клиенты.производитель.

Это просто для будущей моей конфигурации для ведения журнала.

Различные классы, которые я хочу зарегистрировать в настоящее время, следующие.

      org.apache.kafka.clients.producer
org.apache.kafka260.clients.producer
org.apache.kafka221.clients.producer
org.apache.kafka240.clients.producer
org.apache.kafka250.clients.producer
org.apache.kafka251.clients.producer
Другие вопросы по тегам