common logging,jdk log日志实现包等,但是这些日志实现又不能通过接口直接调用,实现上他们根本就和slf4j-api不一致,因此slf4j又增加了一层来转换各日志实 现包的使用,比如slf4j-log4j12...import org.slf4j.LoggerFactory; Logger logger = LoggerFactory.getLogger(xx.class); Top 2. slf4j-api、slf4j-log4j12...2. slf4j-log4j12是链接slf4j-api和log4j中间的适配器:它实现了slf4j-api中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12...3. log4j是具体的日志系统:通过slf4j-log4j12初始化Log4j,达到最终日志的输出。.../ 一般创建工程,建议通过slf4j设计日志系统,方便扩展 org.slf4j slf4j-log4j12
log4j-over-slf4j和slf4j-log4j12是跟java日志系统相关的两个jar包,当它们同时出现在classpath下时,就可能会引起堆栈溢出异常。...代码示例 面的分析都是理论上的,实际代码中即便同时使用了log4j-over-slf4j和slf4j-log4j12,也未必一定会出现异常。
1.错误提取 错误来源于:Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12,所以可以看出是因为依赖冲突,导致StackOverflowError...没办法所以只能先看一下整个依赖里面slf4j-log4j12是在哪里,查找了一遍果然找到相关的依赖,slf4j-log4j12如下图所示: ?...根据jar的pom文件可以看出,这个slf4j-log4j12依赖父级是org.slf4j,然后想着去我的pom文件中查找一下就可以了,然后就尴尬了,发现没有这个依赖。...4.修复bug 从这个图我们可以很明显的看出,是zookeeper依赖引用了slf4j-log4j12依赖,所以我们只要在zookeeper依赖中使用exclusion进行依赖接触可以了,具体pom代码如下所示... org.slf4j slf4j-log4j12
原来这是因为sl4j和log4j的不兼容导致的,具体处理方案如下: 首先看看你工程中的sl4j-api的版本(比如我的是1.5.11),然后在http://mvnrepository.com/搜索slf4j-log4j12...,会出现SLF4J LOG4J 12 Binding,点击进入,会有很多版本的slf4j-log4j12,我们点击1.5.11版本的slf4j-log4j12进入详细信息页面,查看依赖的log4j,这个版本的...slf4j-log4j12依赖的是1.2.14版本的log4j。...所以,我们在我们的工程中添加1.5.11版本的slf4j-log4j12和1.2.14版本的log4j,问题完美解决。
SLF4J: Found binding in [jar:file:/D:/learn/Java/maven/repository_taotao/org/slf4j/slf4j-log4j12/1.6.4...发生jar包冲突了: 分别为: SLF4J: Found binding in [jar:file:/D:/learn/Java/maven/repository_taotao/org/slf4j/slf4j-log4j12...zookeeper slf4j-log4j12...SNAPSHOT slf4j-log4j12
listing_dependencies 解决方案 排除冲突的依赖: Maven: org.slf4j slf4j-log4j12.../exclusion> Gradle: compile('org.raml:raml-parser:0.8.12'){ exclude module: 'slf4j-log4j12
org.slf4j slf4j-log4j12... org.slf4j slf4j-log4j12
StackOverflow”异常,这是由于org.apache.activemq引入的slf4j-log4j12.jar与pom文件中的 log4j-over-slf4j.jar循环调用导致的异常,从名字上可以看出slf4j-log4j12...org.apache.activemq:activemq-all这个maven依赖: 从上图可以看出,activemq-all只是将一些jar包打包起来而已,不是常规的maven构件,所以我们不能通过exclusion标签将slf4j-log4j12
org.slf4j', name: 'slf4j-api', version: '1.7.25' // https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12...compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25' } 这两行首先要添加slf4j的依赖,还要添加基于slf4j...我当时就是因为直接从Maven官网上拷贝了如下内容翻了车: testCompile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25
依赖树分析 解决方案 排除冲突的依赖: Maven: org.slf4j slf4j-log4j12.../exclusion> Gradle: compile('org.raml:raml-parser:0.8.12'){ exclude module: 'slf4j-log4j12
implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from file:~/.m2/repository/org/slf4j/slf4j-log4j12...[INFO] +- org.slf4j:slf4j-log4j12:jar:1.7.5:compile [INFO] | \- org.slf4j:slf4j-api:jar:1.7.5:compile...>1.1.1-RELEASE org.slf4j slf4j-log4j12
exclusion> org.slf4j slf4j-log4j12...exclusion> org.slf4j slf4j-log4j12...logback-classic及log4j-over-slf4j依赖,之后对flink-java、flink-streaming-java_2.11、flink-clients_2.11等配置log4j及slf4j-log4j12...logback-core.jar、log4j-over-slf4j.jar到flink的lib目录下(比如/opt/flink/lib) 移除flink的lib目录下(比如/opt/flink/lib)log4j及slf4j-log4j12...logback-classic及log4j-over-slf4j依赖,之后对flink-java、flink-streaming-java_2.11、flink-clients_2.11等配置log4j及slf4j-log4j12
前言 在日志框架slf4j中有一组项目,除了核心的slf4j-api之外,还有slf4j-log4j12、slf4j-jdk14等项目。... slf4j-api为核心依赖,必须引入,而slf4j-log4j12就是桥接器用来在slf4j和log4j之间进行过渡和封装。...slf4j-log4j12桥接器的价值 要了解桥接器的运作,首先需要回顾一下slf4j的SPI机制。...针对此问题,slf4j提供了slf4j-log4j12这类桥接器的过渡项目。...slf4j-log4j12的核心实现类 理解了桥接器的存在价值及原理,下面就来看看slf4j-log4j12是如何实现这一功能的。
org.slf4j slf4j-log4j12... org.slf4j slf4j-log4j12... 从Flink安装目录的lib目录中删掉log4j与slf4j-log4j12
org.slf4j slf4j-simple 1.7.36slf4j-log4j12...连接到Log4j 1.x版本:xml org.slf4j slf4j-log4j12 org.slf4j slf4j-log4j12
class org.slf4j.impl.Log4jLoggerFactory loaded from file:/D:/cyy/software/maven/repository/org/slf4j/slf4j-log4j12...logback或竞争的实现(从文件加载的类org.slf4j.impl.log4jloggerfactory):/d:/cyy/software/maven/repository/org/slf4j/slf4j-log4j12...exclusions> org.slf4j slf4j-log4j12
exclude(module: 'log4j') exclude(module: 'logback-classic') exclude(module: 'slf4j-log4j12...('org.apache.zookeeper:zookeeper:3.4.6'){ exclude(module: 'log4j') exclude(module: 'slf4j-log4j12
version> //slf4j-log4j: org.slf4j slf4j-log4j12...但是,这些底层日志类实际上跟slf4j并没有任何关系,因此slf4j又通过增加一层日志中间层来转换相应的实现,例如上文中的slf4j-log4j12。...final static void versionSanityCheck() { try { //获取StaticLoggerBinder的api版本,也就是slf4j-log4j12...方法获取对应的loggerFactory,也就是slf4j-log4j12包下的org.slf4j.impl.Log4jLoggerFactory,并返回; 5.上面过程结束后,loggerFactory...--slf4j-log4j --> org.slf4j slf4j-log4j12</artifactId
-- slf4j 适配到 log4j --> org.slf4j slf4j-log4j12x.y.z org.slf4j slf4j-log4j12...结论是,slf4j-jdk14 和 jul-to-slf4j、slf4j-log4j12和log4j-over-slf4j、slf4j-jcl和jcl-over-slf4j 这三对内部两个之间不能同时存在