Categories
java logback logging spring spring-boot

spring boot, logback and logging.config property

I am implementing logging in a spring boot project with logback library. I want to load different logging configuration files according to my spring profiles (property ‘spring.pofiles.active’). I have 3 files : logback-dev.xml, logback-inte.xml and logback-prod.xml. I am using spring boot version 1.2.2.RELEASE.

As you can read in spring boot documentation:

The various logging systems can be activated by including the appropriate libraries on the classpath, and further customized by providing a suitable configuration file in the root of the classpath, or in a location specified by the Spring Environment property logging.config. (Note however that since logging is initialized before the ApplicationContext is created, it isn’t possible to control logging from @PropertySources in Spring @Configuration files. System properties and the conventional Spring Boot external configuration files work just fine.)

So I tried to set ‘logging.config’ property in my application.properties file:

logging.config=classpath:/logback-${spring.profiles.active}.xml

But when i start my application, my logback-{profile}.xml is not loaded…

I think logging is a common problem that all projects using spring boot have encountered. Am I on the right track with the above approach? I have other solutions that work, but I find them not as elegant (conditional parsing with Janino in logback.xml file or command line property).