Spring Boot logging with Lombok

syncdk picture syncdk · May 10, 2017 · Viewed 59.8k times · Source

I would like to use Project Lombok's log annotation in my Spring Boot projects but I don't want to lose the functionality of being able to change the logging from the application.properties.

The Spring logging docs aren't overly clear on what the default logging implementation should be used, and there are 7 Lombok choices!

Any ideas?

Answer

Pär Nilsson picture Pär Nilsson · May 10, 2017

I would use @Slf4j. Tested the following and it works as expected.

@SpringBootApplication
@Slf4j
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
        log.info("testing logging with lombok");
    }
}

Then you can change the logging level as described here.

logging.level.com.example.DemoApplication=WARN

Note: Below clarifies that SLF4J is correctly handled but point is made in last 5 words!

From the docs: "Default configurations are provided for Java Util Logging, Log4J2 and Logback." ... "By default, If you use the ‘Starters’, Logback will be used for logging. Appropriate Logback routing is also included to ensure that dependent libraries that use Java Util Logging, Commons Logging, Log4J or SLF4J will all work correctly."