1、默认日志组件(logback)
默认情况下,如果我们引入了“starter”比如“spring-boot-starter-web”,springboot会默认使用logback。市面上有很多日志框架,作为新手,不用纠结,默认的logback就非常好用。
2、默认日志格式
springboot的默认日志格式如下
- Date和时Time:精确到毫秒,易于排序。
- 日志级别: ERROR, WARN, INFO, DEBUG, 或 TRACE.
- 进程ID。
- 一个 --- 分隔符,以区分实际日志信息的开始。
- 线程名称:包含在方括号中(对于控制台输出可能会被截断)。
- 记录器名称:这通常是源类的名称(通常是缩写)。
- 日志消息。
默认情况下,springboot只会再控制台输出日志,进行正确的配置后,可输出到日志文件并且按一定策略归档日志文件。
3、logback常用配置
基于构建第一个spring boot web项目创建的项目,我们在上面加上logback的配置
#日志配置(logback)
logging:
file:
#日志文件陌路
path: log
#日志文件名称
name: ${logging.file.path}/${spring.application.name}.log
logback:
rollingpolicy:
#用于创建日志归档的文件名模式
file-name-pattern: ${logging.file.path}/%d{yyyy-MM-dd,aux}/${spring.application.name}.%d{yyyy-MM-dd_HH}.%i.log
#日志文件归档前的最大尺寸(文件最大体积,达到这个体积就会归档)。
max-file-size: 10MB
#要保留的归档日志文件的最大天数(默认为7)
max-history: 7
#应用程序启动时,是否行日志归档清理
clean-history-on-start: false
#日志档案在被删除前的最大尺寸(归档文件最大占用大小,超过这个大小后会被删除)
total-size-cap: 10MB
level:
#日志等级:TRACE, DEBUG, INFO, WARN, ERROR, FATAL
以上为作者认为的常用配置,更多其他配置请读者自行探索,或持续关注作者后续发文
4、引入slf4j
slf4j不是一个日志实现组件,可以理解为是一个日志api的抽象层,它能兼容市面上大多数热门的日志实现组件,它为不同的日志组件提供给用户统一的日志API。换种方式理解,把slf4j比喻成javaJDK,那么各个日志组件就相当于不同的操作系统。
引入slf4j的好处在于如果系统要切换日志组件,直接换底层的依赖就行,而不用修改业务层的日志代码。
springboot中,引入slf4j添加如下依赖即可。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
引入依赖后,在要使用日志的类上添加@Slf4j注解,需要打印日志时,使用log.xxx就行了。
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");