项目中的日志整合原理
项目规范整合日志框架
官方解释图:
原理:在slf4j整合其他日志框架
-
slf4j整合longback框架时,框架里边有相同名字的方法,相当于接口的实现类可以直接调用。
-
slf4j整合log4j和JUL(java.util.logging)框架时,由于框架中没有相同名字方法,所以需要一个适配层,当调用slf4j中的方法时去匹配上述两个框架中的对应方法(名字不同所以不能直接用,需要一个适配层)
这只是一个初略slf4j整合日志框架,那我项目原本用了一个日志框架我需要通过slf4j将这个框架转化为其他的框架的方法,该怎么做?
官网的图:
原理:
- 原生项目调用的是log4j打印项目日志,但是项目需求更改需要用logback打印日志时
我们可以设置一个代理层去实现 (可以是代理模式,可以是继承方式)
小tips:就是在导入依赖的时候注意,其他包是否包含有这个依赖。
会导致一个问题:
java.lang.NoSuchMethodException异常
这个异常大都是 maven项目中依赖包的版本冲突