Why is Logback the default logging framework in Spring Boot?

Log4j 2.12.0 added support for utilizing Spring Cloud Config to host the Log4j configuration with dynamic reconfiguration and added support for Docker. With the release of Log4j 2.13.0 Log4j has further integrated with Spring by providing a Spring Lookup so the Log4j configuration can access spring properties. In addition, some Log4j system properties can also be read from Spring's bootstrap.yml or application.yml files. 2.13.0 also provides a Kubernetes Lookup to allow Kubernetes attributes to be specified in the Log4j configuration as properties to include in the log events.

See Logging in the Cloud and Log4j Spring Cloud Config Client.


This is the reason:

Phil Webb: I don't really feel like the arguments being made justify the introduction of a breaking change. [...] If we were starting Spring Boot today we may well have chosen Log4J2 over Logback, but I think so far there are no massively compelling reasons to cause our users upgrade pain. [...] I think it's unlikely that we'll consider switching the default logging system until the next major release of Spring Boot.

Ralph Goers: support for configuring Log4j 2 from Spring Cloud Config is planned to be added.

Source