Java SpringBoot 日志框架基础以及如何更换日志框架学习

学习资料引用

为什么使用 SLF4J 而不是 Log4J 来做 Java 日志
SLF4J和Logback和Log4j和Logging的区别与联系
B站大佬视频

框架之间基础关系

在搜集的资料中,比较流行的java框架抽象层有如下几种

  • JUL(java.util.logging)
    官方日志框架,spring底层默认框架
  • log4j(log for java)
    开源框架
  • SLF4J(simple logging facade for java)
    springboot底层日志默认框架

日志实现由如下几种

  • log4j
  • JUL
  • -log4j2(Apache公司所写,没有合适的适配层)
  • logback(SLF4J,log4j,logback出自一人之手,适配性是最好的)

框架实现

官方文档
在这里插入图片描述
在log4j和JUL出来的时候,还并没有出现SLF4J,所以中间会有一层适配层,来帮助程序调用API
调用的始终是SLF4J的方法,不过是适配层来实现SLF4J抽象层,在实现过程中,调用了实现类的API

框架切换

首先还是官方的切换框架说明文档
官方的切换框架说明文档
在这里插入图片描述
其他框架底层例如是JUL,会有类似适配层的.jar(这里指的就是jcl-over-sef4j.jar),他们会把JUL接口转成SLF4J的
当需要把SLF4J的实现从logback转成log4j的时候,因为会引入适配层,所以不再需要把log4j的遗留接口转换成SLF4J接口

logback转log4j具体实现

logback各方面比log4j更为强大,这里只是单纯进行练习
首先看log方便的依赖
在这里插入图片描述

在这里插入图片描述
这里可以观察到依赖关系
首先应该将logback依赖排除掉
对于log4j-to-slf4 因为我们原本准备使用log4j 这里逻辑上应该将其移除,但是转为slf4也不会对结果产生影响
最后添加适配层的依赖,并加入相应的配置文件l文件
在这里插入图片描述
在这里插入图片描述

log4j.properties

### set log levels ###
log4j.rootLogger = debug ,  stdout ,  D ,  E

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} =====================%5p %c{1}:%L - %m%n

这里加了一串等号 为检验下面是否得到了期望效果
在这里插入图片描述
这样即达到了转换实现类的效果,虽然系统调用的始终是SLF4J,但是实现框架就改变了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值