简介
SpringBoot的日志部分,日志选择,日志框架切换
日志框架的选择
选用SLF4j和logback
历史遗留
如果之前有部分系统使用的不是SLF4j,那如何让系统中所有的日志都统一到SLF4j?官方说:
1. 将系统中其他日志框架先排除出去
2. 用中间包替换掉原有的日志框架
3. 导入SLF4j其它的实现
那在SpringBoot中它是咋做的?都有什么依赖?看下图快捷调出视图依赖
找到starter下关于日志的依赖关系,知道了SpringBoot搞了这几个jar做日志,看名字,log4j-toslf4j什么的,意思是说把log4j他们都替换成slf4j,与slf4j官方思想一致,关于细节,请自行查源码
SpringBoot能自动适配所有日志,而且底层使用slf4j+logback的方式记录日志
默认配置
SpringBoot默认已经配置好日志了
注意一下,这里的LoggerFactory是sfl4j的
Logger logger = LoggerFactory.getLogger(getClass());
@Test
void contextLoads1() {
//日志的级别从低到高
logger.trace("这是trace日志。。。");
logger.debug("这是dubug日志。。。");
logger.info("这是info日志。。。");
logger.warn("这是warn日志。。。");
logger.error("这是error日志");
}
2020-09-07 15:37:50.449 INFO 15296 --- [ main] h.demo.DemoApplicationTests : 这是info日志。。。
2020-09-07 15:37:50.449 WARN 15296 --- [ main] h.demo.DemoApplicationTests : 这是warn日志。。。
2020-09-07 15:37:50.450 ERROR 15296 --- [ main] h.demo.DemoApplicationTests : 这是error日志
可以看到默认级别是从info到error,不过可以在yml里改默认配置,要给个map
logging:
level:
hellospringboot.demo : trace
2020-09-07 15:54:44.695 TRACE 16324 --- [ main