首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

slf4j-api、slf4j-log4j12、log4j之间关系

,jdk log日志实现包等,但是这些日志实现又不能通过接口直接调用,实现上他们根本就和slf4j-api不一致,因此slf4j又增加了一层来转换各日志实 现包的使用,比如slf4j-log4j12等。...slf4j+log4j组合使用模式: 1. slf4j-api-1.5.11.jar 2. slf4j-log4j12-1.5.11.jar 3. log4j-1.2.15.jar 4. log4j.properties...= LoggerFactory.getLogger(xx.class); Top 2. slf4j-api、slf4j-log4j12、log4j 下图比较清晰的描述了它们之间的关系,例子为当系统采用...2. slf4j-log4j12是链接slf4j-api和log4j中间的适配器:它实现了slf4j-api中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12...3. log4j是具体的日志系统:通过slf4j-log4j12初始化Log4j,达到最终日志的输出。

6.5K50
您找到你想要的搜索结果了吗?
是的
没有找到

log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析

log4j-over-slf4j和slf4j-log4j12是跟java日志系统相关的两个jar包,当它们同时出现在classpath下时,就可能会引起堆栈溢出异常。...异常信息大致如下(摘自slf4j官网文档Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting...slf4j的转接绑定 上面只是从整体上大概说了下Java现有日志体系,还看无法详细说明问题所在,需要进一步了解一下slf4j与具体日志框架的桥接情况。 slf4j与具体日志框架结合的方案有很多种。...代码示例 面的分析都是理论上的,实际代码中即便同时使用了log4j-over-slf4j和slf4j-log4j12,也未必一定会出现异常。...下面的代码调用slf4j的API输出日志,slf4j底层桥接到log4j: ? 配置classpath上的jar包为(注意log4j在log4j-over-slf4j之前): ?

1.9K70

Log4整理-log4j介绍、log4j配置、log4j详解、log4j示例

参考链接: log4j-示例程序 一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。...由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,...为了减低这些影响,log4j 被设计成快速且灵活的。由于应用程序很少将日志记录当作是主要功能, log4j API 力争易于了解和使用。 log4j,它可以控制以任意间隔输出哪些日志语句。 ...log4j支持的输出目的地: org.apache.log4j.ConsoleAppender 控制台 org.apache.log4j.FileAppender 文件 org.apache.log4j.DailyRollingFileAppender...DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org

1.5K01

Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflow

引入org.apache.activemq:activemq-all依赖与org.slf4j:log4j-over-slf4j导致运行时冲突产生“Detected both log4j-over-slf4j.jar...AND slf4j-log4j12.jar on the class path, preempting StackOverflow”异常,这是由于org.apache.activemq引入的slf4j-log4j12....jar与pom文件中的 log4j-over-slf4j.jar循环调用导致的异常,从名字上可以看出slf4j-log4j12是将slf4j的日志桥接到log4j12上, log4j-over-slf4j...则是将log4j的日志桥接到slf4j上,因而产生了循环调用。...从activemq-all中删除,解决这个冲突有两种方法: 1.使用log4j日志框架,删除pom文件中的log4j-over-slf4j依赖 2.删除activemq-all,选择具体使用到的activemq

1.1K30

slf4j、log4j、log4j2、logback到底用哪些jar

1.2就停止更新log4j,并又重新手撸了个log4j2,后来这个大佬手撸了一个性能更高、功能更全的logback,从此,这个大佬构建了log的世界,也创造了最常见的日志框架:log4j、log4j2、...; // 使用log4j2,需要log4j-api.jar、log4j-core.jar import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger...如slf4j官方图所示: 这就是slf4j和其他框架的组合,使用slf4j需要首先导入slf4j-api.jar,和log4j配合,你就要导入log4j.jar,以及他们之间的桥接包slf4j-log412...这个官方图美中不足的地方是,没有log4j2的配合方式,和log4j2配合需要导入桥接包log4j-slf4j-impl.jar和log4j2的log4j-api.jar、log4j-core.jar。...究其根本是因为logback-classic、log4j-slf4j-impl、slf4j-log412、slf4j-jdk这些jar不能同时存在。

25210

log4j-over-slf4j工作原理详解

SLF4J作为一个服务很多日志框架的门店或者抽象,一些相关插件使用了设计模式中的门面模式以及代理模式,我们可以SLF4J这个框架很容易就切换具体的日志框架,比如logback、log4j等,还能将使用log4j...日志框架输出的日志路由到SLF4J上(通过org.slf4j:log4j-over-slf4j:jar这个jar包实现)。...特别需要指出的是SLF4J采用的是动态绑定具体日志框架的方式,根据classpath目录下放置的绑定jar包来实现绑定,常见绑定jar包如下: 具体用法:使用log4j-over-slf4j取代log4j...,这样log4j接口输出的日志就会通过log4j-over-slf4j路由到SLF4J上,这样即使系统(包含使用的第三方jar库,比如dubbo)都可以将日志最终路由到SLF4J上,进而集中输出。...工作原理 本文就以log4j-over-slf4j这个jar库为例来说明这其中的原理: 这个里面使用的是迷惑战术,按照log4j库的目录排布放置几个相关类(比如Logger等),这样系统中使用log4j

61930
领券