log 框架 之间的关系
日志框架分为两大部分
一部分是日志框架的抽象层,一部分是日志框架的具体实现
slf4j: 日志框架的抽象层
log4j,logback 日志框架的具体实现
如上图所示:
slf4j的具体实现是:slf4j-api.jar
slf4j抽象层的具体实现是 logback-classic.jar, logback-core.jar
由于历史的原因
log4j 和 jave.util.logging 诞生在 slf4j这个抽象层之前,所以它们需要一个中间适配层来连接现有抽象层 和 具体的实现层
log4j 的适配器层是slf4j-log12.jar, java.util.logging的适配器层是slf4j-jdk14.jar
加上适配器后以前原有的log框架也就受slf4j的控制了。
日志框架的配置文件使用的是 日志框架实现类自己的配置文件
历史遗留问题,在一个大型系统中由于使用到的框架底层依赖不同的log框架,为了统一使用将多个不同的日志框架统一转化成相同的框架来使用
需要使用不同的转换工具类
commons-logging使用的转换包是 jcl-over-slf4j.jar
如果系统中想统一使用logback,需要
1. 将系统中其他日志框架先排除出去 (maven exclude)
2. 用中间包来替换原有的日志框架 例如 jcl-over-slf4j.jar
3. 我们导入slf4j其他的实现 比如说logback
参考资料:
https://www.slf4j.org/manual.html
https://www.slf4j.org/legacy.html