Доступ к свойствам приложения в logback.xml
Можно ли получить доступ к свойствам приложения весенней загрузки в log back xml.
application.properties
dummy.property=hello
logback.xml
${dummy.property}
Это не сработало.
У кого-нибудь есть идея, будет ли это работать?
3 ответа
Если вы называете свой файл конфигурации logback-spring.xml
, скорее, чем logback.xml
, ты можешь использовать <springProperty>
для доступа к свойствам из среды Spring, в том числе настроенным в application.properties
, Это описано в документации:
Тег позволяет отображать свойства из среды Spring для использования в Logback. Это может быть полезно, если вы хотите получить доступ к значениям из файла application.properties в вашей конфигурации обратного входа. Тег работает аналогично стандартному тегу Logback, но вместо указания прямого значения вы указываете источник свойства (из среды). Вы можете использовать атрибут области действия, если вам нужно хранить свойство где-то, кроме локальной области.
<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"/> <appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender"> <remoteHost>${fluentHost}</remoteHost> ... </appender>
Согласно http://logback.qos.ch/manual/configuration.html
Переменные могут быть определены по одной в самом файле конфигурации или загружены оптом из внешнего файла свойств или внешнего ресурса.
...
Свойство не объявлено в файле конфигурации, поэтому logback будет искать его в свойствах системы.
Logback может использовать системные свойства или свойства, определенные явно. Таким образом, вы должны сказать logback использовать файл application.properties
<property resource="application.properties" />
Просто добавьте свой префикс, который существует в вашем файле конфигурации(properties, yaml)
как эта строка:
<springProperty scope="context" name="LOGS" source="logging.path"/>
в:logback.xml
В этом случае:logging.path
префикс