Как установить значение по умолчанию для ключа MDC в log4j 2?

Как и в log4j, у нас есть возможность установить значение по умолчанию для ключа MDC, например: mdc{key:-defaultVal}

У нас есть что-то подобное в log4j 2?


person Tanmoy    schedule 23.11.2016    source источник


Ответы (3)


Глядя в MdcPatternConverter, он не поддерживает значение по умолчанию.

В этом тикете есть открытый тикет Jira.

Я считаю, что вы также можете использовать это: ${ctx:<key>:-<default_value>}

person igreenfield    schedule 06.04.2017
comment
печатается только значение по умолчанию, но не печатаются значения @igreenfield - person Mahender Reddy Yasa; 05.01.2021
comment
Какую версию вы используете и как вы устанавливаете MDC? - person igreenfield; 05.01.2021
comment
Я использую ThreadContext с версией spring boot log4j2 2.2.5, но когда я использовал двойные куклы, такие как этот $${ctx:‹key›:-‹default_value›}, он также начал печатать динамические значения по умолчанию, когда он пуст или нулевой - person Mahender Reddy Yasa; 07.01.2021

Хотя нет возможности установить шаблон по умолчанию с помощью шаблона %X, есть шаблоны %equals и %equalsIgnoreCase, которые можно использовать для чего-то эквивалентного.

%equals{%X{<key>}}{}{<default>}

person bnorm    schedule 13.07.2018

Официальная ссылка Logback для компонентов макета.

X{key:-defaultVal}

Если указанное значение ключа равно null, то выводится значение по умолчанию, указанное после оператора :-.

Если значение по умолчанию не указано, выводится пустая строка.

person Vignesh Shiv    schedule 26.12.2018
comment
Это ответ для журнала, но OP запросил log4j2 - person Lino; 26.04.2021