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