默认情况下,Spring Boot会用
SLF4J + Logback
来记录日志,并用INFO
级别输出到控制台。SLF4J,即简单日志门面(Simple Logging Facade for Java),它可以看做是一个接口框架,并不提供具体的实现,具体的实现由类似于Log4j,Log4j2,Logback等等这样的日志框架去完成。SLF4J让你的代码独立于任何特定的日志记录API,可以让我们的程序更加的健壮,不会让你因为不同日志的实现而导致的问题去分心。
如果我们在一个Spring Boot 的程序中去使用SLF4J,因为spring-boot-starter中就已经包含了有关slf4j的jar包。我们只需要通过LoggerFactory去获取即可:
private static final Logger logger = LoggerFactory.getLogger(ResponseAop.class);
默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。如果要编写除控制台输出之外的日志文件,则需在application.yml中设置logging.file或logging.path属性。但是这俩属性同时配置的时候,只有logging.file生效!
生产环境会单独配一个日志文件,如果要在日志文件中读取application.xml中属性要注意:logback.xml早于application.yml加载,logback-spring.xml晚于application.yml加载如果logback配置需要使用application.yml中的属性,需要命名为logback-spring.xml。并且logback使用springProperty才可使用application.yml中的值,如: <springProperty scope="context" name="logPath" source="log.path" defaultValue="logs"/>