У меня есть приложение, работающее на tomcat, которое работает в контейнере docker. Мое приложение использует стороннюю платформу для ведения журнала, основанную на стандартных решениях для ведения журнала, таких как logback, log4j et c. В моем конкретном случае это logback ... Вышеупомянутая структура позволяет мне настраивать шаблон макета (не обычный logback. xml файл), см. Пример ниже:
%d{yyyy-MM-dd HH:mm:ss} %-5level %mdc [%thread]-[%mdc{SOURCE}] %message%n %property{myProperty}
Где myProperty - это переменная окружения , которую я мог видеть, если внутри контейнера я выполню команду - "env". В документации обратного вызова сказано:
Во время подстановки сначала ищутся свойства в локальной области, во второй области контекста, в третьей области свойств системы, а в четвертой среде ОС и last". Поэтому, если свойство определено в среде, logback найдет его.
Однако при выводе журнала я вижу значение null. Если я добавлю его в свойства tomcat, например this
export CATALINA_OPTS="${CATALINA_OPTS} -DmyProperty=myValue;
Возвращает правильные значения.
По какой-то причине, если я не заполняю свойство как параметр JVM или tomcat, logback не разрешает переменную из переменных среды.
Посмотрел здесь , но это не очень помогло. Не могли бы вы посоветовать ...