Использовать имя регистратора, если ключ MDC отсутствует

Я использую logback со сторонним пакетом, который устанавливает идентификатор в MDC, когда его код выполняется. В остальное время этот идентификатор не устанавливается. Так что, если я использую PatternLayout из [%X{id}] %m%nто я вижу сообщения типа

[Foo] Foo running
[Bar] Bar running

для сообщений, связанных с пакетом. Тем не менее, остальные мои операторы журнала выглядят как

[] Thing happened

%X{id} полезная информация, когда она существует, но я бы хотел, чтобы имя регистратора использовалось, когда ее нет. Я старался

[%X{id:-%logger{20}}] 

а также

[%X{id:-logger{20}}]

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

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

0 ответов

Другие вопросы по тегам