深入理解springboot日志框架

一、springboot默认日志框架

我们先查看一下springboot项目的日志jar包依赖

 可以看出来boot项目默认使用的日志框架是logback,日志门面接口是slf4j,我们在项目中使用的是slf4j日志,底层的实现是可以自由选择的,比如log4j,java.util.logging,appache-commons-logging,使用统一的日志接口,这样项目切换日志架构就比较方便,图中log4j-to-slf4j是将log4j日志转为slf4j。

 

二、springboot日志架构的切换

接下来介绍日志框架的切换,以logback切换成log4j为例,我们看一下springboot官方提供的日志使用图

 查看右上角的流程,可以看出,我们面向slf4j-api.jar编程,底层使用log4j.jar的日志实现,中间通过slf4j-log4j.jar适配器联调实现与接口,这样就实现了日志框架的切换,但是项目中如果有其他日志框架的实现,比如commons-logging.jar,这样启动项目时就会报错,也要替换成相应的转为slf4j的jar包,这样日志框架就统一了。

 

三、springboot的默认配置(日志级别、日志格式、日志文件)

@RunWith(SpringRunner.class)
@SpringBootTest
public class ConfigurationLoadingOrderApplicationTests {
	
	Logger logger = LoggerFactory.getLogger(getClass());
	
	@Test
	public void contextLoads() {
		logger.trace("trace");
		logger.debug("debug");
		logger.info("info");
		logger.warn("warn");
		logger.error("error");
	}

}

springboot的日志级别是trace<debug<info<warn<error,如果不在配置文件中修改日志级别,默认就是info,trace和debug级别是不在控制台打印的,在配置文件中配置 logging.level.com.example=trace 即可修改日志级别,level后面是要修改级别的包名

 日志格式的代表含义如下文介绍,我们可以在配置中通过属性logging.pattern.console和logging.pattern.file来修改控制台和文件中的日志格式,比如%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n

日志输出格式:
    		%d表示日期时间,
    		%thread表示线程名,
    		%-5level:级别从左显示5个字符宽度
    		%logger{50} 表示logger名字最长50个字符,否则按照句点分割。 
    		%msg:日志消息,
    		%n是换行符

至于默认日志文件位置,如果我们不配置logging.path和logging.file则默认不在日志文件中输出,可以通过配置这个属性将日志打印在文件中

指定的是文件路径,对文件名称不起作用,文件名默认spring.log
logging.path=D:/mylog/wp.log

可以指定文件路径和名称

logging.file = D:/wp.log

值得注意的地方是这两个属性是互斥属性,只能配置一个,同时配置了两个只有logging.file生效

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值