JAVA日志依赖冲突解决总结

日志排查记录

一、日志依赖类型
日志接口
commons-logging    apache的日志接口
slf4j-api    
日志排查记录

一、日志依赖类型
日志接口
commons-logging    apache的日志接口,自动搜索应用内的日志解决方案接口
slf4j-api    最通用的日志接口,与apache不同的是,slf4j采用桥接器模式,可以又用户指定使用哪个具体的日志实现
jakarta.common.logging (JCL,commons-logging 前身)

桥接器
jcl-over-slf4j    commons-log桥接到slf4j
slf4j-log4j12    slf4j的实现桥接到log4j
log4j-over-slf4j   log4j的实现桥接回到slf4j

日志解决方案
log4j 最广泛的日志解决方案
logback log4j作者的又一力作,性能比log4j更好


二、搭配方案
1、commons-logging  +  log4j
2、slf4j-api  +  logback(logback-core和logback-classic)
3、commons-logging  +  jcl-over-slf4j  +  slf4j-api  +  slf4j-log4j12  +  log4j
4、slf4j-api  + log4j-over-slf4j + logback(logback-core和logback-classic)


三、解决思路

1.先排查log4j与logback的冲突,所有同时包含log4j与log4j的依赖,根据需要排除另一个

2. jcl-over-slf4j 可能会导致与 commons-logging 动态绑到其他日志接口的问题,在没有  slf4j-api的情况下  不建议导入

3.log4j-over-slf4j 与 slf4j-log4j12 同时存在可能会引起问题 在确认不使用log4j的情况下,再考虑保留log4j-over-slf4j

jakarta.common.logging (JCL,commons-logging 前身)

桥接器
jcl-over-slf4j    commons-log桥接到slf4j
slf4j-log4j12    slf4j的实现桥接到log4j
log4j-over-slf4j   log4j的实现桥接回到slf4j

日志解决方案
log4j 最广泛的日志解决方案
logback log4j作者的又一力作,性能比log4j更好


二、搭配方案
1、commons-logging  +  log4j
2、slf4j-api  +  logback(logback-core和logback-classic)
3、commons-logging  +  jcl-over-slf4j  +  slf4j-api  +  slf4j-log4j12  +  log4j
4、slf4j-api  + log4j-over-slf4j + logback(logback-core和logback-classic)


三、解决思路

1.先排查log4j与logback的冲突,所有同时包含log4j与log4j的依赖,根据需要排除另一个

2. jcl-over-slf4j 可能会导致与 commons-logging 动态绑到其他日志接口的问题,在没有  slf4j-api的情况下  不建议导入

3.log4j-over-slf4j 与 slf4j-log4j12 同时存在可能会引起问题 在确认不使用log4j的情况下,再考虑保留log4j-over-slf4j

你可能感兴趣的:(JAVA)