解决项目中多种日志框架冲突

问题

最近在开发中,项目使用的日志框架是log4j,在引入第三方库tess4j之后,由于tess4j中也使用了日志,报错:
在这里插入图片描述

原因是:log4j-over-slf4j和slf4j-log4j12是跟Java日志系统相关的两个jar包,当它们同时出现在classpath下时,就可能会引起堆栈溢出异常。

解决

此警告信息表示工程中有logback和log4j两种日志框架,最后slf4j选择了logback。那么该问题如何解决呢,可以看出日志中也打印出来了问题说明的网址,见http://www.slf4j.org/codes.html#multiple_bindings:
解决项目中多种日志框架冲突_第1张图片

在maven中加入此段依赖即可解决问题。

总结

如果不想使用某个日志框架,就在依赖中排除该框架的依赖。比如示例中,工程依赖了cassandra-all,而cassandra-all内部使用了log4j作为日志框架,若我们工程不想使用log4j,就需要排除log4j和slf4j-log4j12两个依赖。

你可能感兴趣的:(日志)