Я хочу иметь динамические c свойства приложения обратного входа, которые можно легко добавить в файл конфигурации обратного входа, однако я пытаюсь установить класс и имя приложения (которые находятся в атрибутах xml вместо элементов под элемент appender).
Итак, вот мой application.yml (жестко закодированные значения для примера, но в реальном случае использования они будут переданы как переменные env из Helm во время развертывания в кластере K8s):
log:
config:
appender:
name: CONSOLE
class: ch.qos.logback.core.ConsoleAppender
И вот как я пытаюсь получить доступ к ним в logback-spring. xml (версия загрузочной пружины - 2.2.4.RELEASE
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- use Spring default values like patterns -->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!-- declaration of ENV properties: -->
<springProperty name="LOG_CONFIG_APPENDER_NAME" source="log.config.appender.name"/>
<springProperty name="LOG_CONFIG_APPENDER_CLASS" source="log.config.appender.class"/>
<appender name="${LOG_CONFIG_APPENDER_NAME}" class="${LOG_CONFIG_APPENDER_CLASS}">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="${LOG_CONFIG_APPENDER_NAME}"/>
</root>
</configuration>
Это приводит к следующему исключение:
ERROR in ch.qos.logback.core.joran.action.AppenderAction - Could not create an Appender of type [${LOG_CONFIG_APPENDER_CLASS}]. ch.qos.logback.core.util.DynamicClassLoadingException: Failed to instantiate type ${LOG_CONFIG_APPENDER_CLASS}
Итак, мой вопрос: возможно ли динамическое определение имени и класса приложения?