Issue
Is it possible to access application properties of spring boot in log back xml.
application.properties
dummy.property=hello
logback.xml
${dummy.property}
Does any one have idea if it will work.
Solution
If you name your configuration file logback-spring.xml
, rather than logback.xml
, you can use <springProperty>
to access properties from Spring's environment including those configured in application.properties
. This is described in the documentation:
The tag allows you to surface properties from the Spring Environment for use within Logback. This can be useful if you want to access values from your application.properties file in your logback configuration. The tag works in a similar way to Logback’s standard tag, but rather than specifying a direct value you specify the source of the property (from the Environment). You can use the scope attribute if you need to store the property somewhere other than in local scope.
<springProperty scope="context" name="fluentHost" source="myapp.fluentd.host"/> <appender name="FLUENT" class="ch.qos.logback.more.appenders.DataFluentAppender"> <remoteHost>${fluentHost}</remoteHost> ... </appender>
Answered By - Andy Wilkinson
Answer Checked By - David Goodson (JavaFixing Volunteer)