SpringBoot 日志配置
SpringBoot 日志配置
日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节。但是,这丝毫不影响它在任何一个系统中的重要的地位。
为了保证服务的高可用,发现问题一定要即使,解决问题一定要迅速,所以生产环境一旦出现问题,预警系统就会通过邮件、短信甚至电话的方式实施多维轰炸模式,确保相关负责人不错过每一个可能的bug。
预警系统判断疑似bug大部分源于日志。比如某个微服务接口由于各种原因导致频繁调用出错,此时调用端会捕获这样的异常并打印ERROR级别的日志,当该错误日志达到一定次数出现的时候,就会触发报警。
一、默认日志
Spring Boot默认使用LogBack日志系统,如果不需要更改为其他日志系统如Log4j2等,则无需多余的配置,LogBack默认将日志打印到控制台上。
如果要使用LogBack,原则上是需要添加dependency依赖的。但是因为新建的Spring Boot项目一般都会引用spring-boot-starter
或者spring-boot-starter-web
,而这两个起步依赖中都已经包含了对于spring-boot-starter-logging
的依赖,所以,无需额外添加依赖。
当我们需要使用到日志记录时,需要新建一个 Log 对象,才能调用该方法。
1 | private static final Logger log = LoggerFactory.getLogger(类名.class); |
我们新建一个Springboot项目进行测试
1 |
|
Spring Boot默认的日志级别为INFO,这里打印的是INFO及其以上级别的日志
日志等级:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
二、Lombok 的 @Slf4j 注解
引入Lombok依赖
1 | <dependency> |
此时只需要一个 @Slf4j 注解标注在类上,在编译时就会自动帮我们新建一个 Log 对象
1 |
|
三、日志文件配置
在配置文件目录下面新建一个配置文件 logback-spring.xml
Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项。
上面是默认的命名规则,并且放在src/main/resources下面即可。如果你即想完全掌控日志配置,但又不想用logback.xml作为Logback配置的名字,可以在application.properties配置文件里面通过logging.config属性指定自定义的名字:logging.config=classpath:logback.xml
1 | <configuration debug="false" scan="true" scanPeriod="10 seconds"> |
运行效果