Recently I added support for Spring Cloud Config to Log4j. In an effort to continue to persuade Spring to use Log4j as the default Logging implementation I would like to consider other ways we could improve our Spring integration. The problem is, I am not really sure what that would be.
Currently, Spring uses a lowest common denominator approach in that you can configure root logging levels in application.yaml but it doesn’t support declaring appenders or filters. I’ve thought about being able to add the log4j logging configuration to the application.yaml, but Spring Boot actually initializes logging 3 times - once in SpringApplication.java where it has an SLF4J logger declared, again in Spring’s “boot” logger, and lastly when it initializes logging for the application. I am pretty sure only this last one would have any hope of being able to use the application.yaml and even then I am not sure if the logging configuration happens before it is available to be accessed. I also thought about creating a Spring Lookup to be able to access Spring properties, but again if Log4j initializes before Spring the variables would not be available. Thoughts or ideas? Ralph