Как использовать свойства приложений Spring в logback.xml - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь использовать значения свойств пружины в logback.xml.

Файл application-dev.properties (который является частью моего фляги) содержит свойство:

myapp.test.appender-class=ch.qos.logback.core.ConsoleAppender

и я добавил следующее в logback.xml:

<configuration scan="true" debug="true">
    <property resource="application-dev.properties" />
    <appender name="consoleAppender" class="${myapp.test.appender-class}">

При запуске приложения я получаю следующую ошибку:

ОШИБКА в ch.qos.logback.core.joran.action.AppenderAction - Не удалось создать Appender типа [$ {appender-class}].ch.qos.logback.core.util.DynamicClassLoadingException: не удалось создать экземпляр типа $ {myapp.test.appender-class}

Что я делаю не так?

Примечание: Iтакже пытался переименовать мой logback.xml в logback-spring.xml, но это создает другие проблемы.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

В соответствии с официальным docs

Поскольку стандартный файл конфигурации logback.xml загружается слишком рано, в нем нельзя использовать расширения.Вам нужно либо использовать logback-spring.xml, либо определить свойство logging.config.

И чтобы справиться с этим, Spring предоставляет тег <springProperty>.

Тег позволяет выставить свойства из среды Spring для использования в Logback.Это может быть полезно, если вы хотите получить доступ к значениям из файла application.properties в конфигурации Logback.Тег работает аналогично стандартному тегу Logback.Однако вместо указания прямого значения вы указываете источник свойства (из среды).Если вам нужно сохранить свойство где-то, кроме локальной области, вы можете использовать атрибут области.

<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host" defaultValue="localhost"/>
<appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender">
    <remoteHost>${fluentHost}</remoteHost>
    ...
</appender>
0 голосов
/ 12 декабря 2018

Попробуйте использовать springProperty

<configuration>
    <springProperty name="my_appender" source="myapp.test.appender-class"/>

    <appender name="consoleAppender" class="${my_appender}"/>
</configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...