- 浏览: 65442 次
- 性别:
- 来自: 青岛
文章分类
最新评论
1 log4j和slf4j的关系
几乎在每个jar包里都可以看到log4j的身影,在多个子工程构成项目中,slf4j相关的冲突时不时就跳出来让你不爽,那么slf4j-api、slf4j-log4j12还有log4j是什么关系?
slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade门面,更底层一点说就是接口。它允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。更直观一点,slf4j是个数据线,一端嵌入程序,另一端链接日志系统,从而实现将程序中的信息导入到日志系统并记录。
因此slf4j入口就是众多接口的集合,它不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。查看slf4j-api源码就可以发现,里面除了public final class LoggerFactory类之外,都是接口定义。因此slf4j-api本质就是一个接口定义。
下图比较清晰的描述了它们之间的关系,例子为当系统采用log4j作为日志框架实现的调用关系:
①首先系统包含slf4j-api作为日志接入的接口。compile时slf4j-api中public final class LoggerFactor类中private final static void bind()方法会寻找具体的日志实现类绑定,主要通过StaticLoggerBinder.getSingleton()的语句调用。
②slf4j-log4j12是链接slf4j-api和log4j中间的适配器。它实现了slf4j-api中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法。
③log4j是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出。
2 实现
几乎在每个jar包里都可以看到log4j的身影,在多个子工程构成项目中,slf4j相关的冲突时不时就跳出来让你不爽,那么slf4j-api、slf4j-log4j12还有log4j是什么关系?
slf4j:Simple Logging Facade for Java,为java提供的简单日志Facade。Facade门面,更底层一点说就是接口。它允许用户以自己的喜好,在工程中通过slf4j接入不同的日志系统。更直观一点,slf4j是个数据线,一端嵌入程序,另一端链接日志系统,从而实现将程序中的信息导入到日志系统并记录。
因此slf4j入口就是众多接口的集合,它不负责具体的日志实现,只在编译时负责寻找合适的日志系统进行绑定。具体有哪些接口,全部都定义在slf4j-api中。查看slf4j-api源码就可以发现,里面除了public final class LoggerFactory类之外,都是接口定义。因此slf4j-api本质就是一个接口定义。
下图比较清晰的描述了它们之间的关系,例子为当系统采用log4j作为日志框架实现的调用关系:
①首先系统包含slf4j-api作为日志接入的接口。compile时slf4j-api中public final class LoggerFactor类中private final static void bind()方法会寻找具体的日志实现类绑定,主要通过StaticLoggerBinder.getSingleton()的语句调用。
②slf4j-log4j12是链接slf4j-api和log4j中间的适配器。它实现了slf4j-api中StaticLoggerBinder接口,从而使得在编译时绑定的是slf4j-log4j12的getSingleton()方法。
③log4j是具体的日志系统。通过slf4j-log4j12初始化Log4j,达到最终日志的输出。
2 实现
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyTest3 { private static Logger log = LoggerFactory.getLogger(MyTest3.class.getName()); public static void main(String[] args) { log.info("你好啊"); log.debug("我是debug"); log.error("错了"); log.trace("这是什么"); } }
- slf4j-log4j12-1.7.7.jar (8.7 KB)
- 下载次数: 3
- slf4j-api-1.7.7.jar (28.6 KB)
- 下载次数: 0
- slf4j-log4j12-1.7.7-sources.jar (10.1 KB)
- 下载次数: 0
- slf4j-api-1.7.7-sources.jar (48.2 KB)
- 下载次数: 0
发表评论
-
Tomcat启动报Error listenerStart错误
2017-07-17 10:29 663今天启动Tomcat启动不了,报以下错: org.apac ... -
如何在eclipse中修改jsp默认编码
2016-12-25 12:30 630第一步:打开eclipse,找到windows-->pr ... -
eclipse编码格式设置教程、如何为eclipse设置编码格式?
2016-12-25 12:23 623如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中 ... -
修改 IntelliJ IDEA 的默认文件编码
2016-12-21 00:09 1633有两种办法可以修改 IntelliJ IDEA 的文件编码(I ... -
The specified JRE installation does not exist
2016-12-19 22:32 1183window -->preferences --> ... -
maven插件资源
2016-12-04 21:05 499http://archive.apache.org/dist/ ... -
java的svn的使用
2016-11-30 20:03 661http://blog.csdn.net/world_ding ... -
Eclipse+Maven创建webapp项目
2016-11-26 10:45 689http://www.cnblogs.com/AloneSwo ... -
报Failed to load class "org.slf4j.impl.StaticLoggerBinder".
2016-11-26 09:40 1484[root@master ~]# /export/kafka ... -
Maven: 每次更新Maven Project ,JAVA 版本都变为1.5
2016-11-21 00:10 1691由于Maven默认编译环境是JAVA 1.5 ,所以我们需要在 ... -
Server Tomcat v6.0 Server at localhost was unable to start within 45 second
2016-10-18 08:33 652当启动tomcat时候出现 Server Tomcat v6. ... -
IntelliJ Idea 常用快捷键列表
2016-10-11 09:18 440Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ct ... -
Windows 7 sometimes breaks FTP connections on Java 7 if firewall is enabled
2016-10-11 09:17 1164Windows 7 sometimes breaks FTP ... -
intellij idea 2015、2016破解方法
2016-10-10 13:08 1704在注册时Help—Register,选择 License se ... -
优秀的学习资源地址
2016-10-07 21:47 01 非常全的java资料 http://pan.baidu.c ... -
idea中dependencies中总是有红色波浪线(缺少dependency)的解决办法
2016-10-10 13:06 5344使用IDEA进行maven开发时,将新项目import进工作空 ... -
maven的生命周期
2016-10-10 13:09 500一 三套生命周期 1 compile 2 clean 3 si ... -
私服服务器Nexus的安装
2016-10-10 13:09 7291 下载 https://www.sonatype.com ... -
maven添加额外archetype
2016-10-10 13:09 1192用Eclipse + m2e 插件新建maven项目时发现ar ... -
解决Cannot change version of project facet Dynamic web module to 2.5
2016-10-07 00:52 665我们用Eclipse创建Maven结构的web项目的时候选择了 ...
相关推荐
删除项目中存在的Log4j1.x所必须的log4j和slf4j-log4j12等依赖可以使用以下命令: mvn dependency:tree > tree.log cat tree.log | grep log4j 添加Slf4j和Log4j2的依赖可以使用以下配置: <groupId>org.slf4j ...
SLF4J(Simple Logging ...总的来说,“log4j_slf4j.jar”是一个方便的组合包,它整合了SLF4J和Log4j,使得开发者可以轻松地在项目中实现日志记录,同时保留了更换日志框架的可能性,提高了项目的可维护性和可移植性。
**整合Log4j和SLF4J** 在"hibernate3-log4j-slf4j"的场景中,我们通常会将SLF4J作为日志接口,然后使用Log4j作为具体的日志实现。SLF4J提供了一个桥接器(slf4j-log4j12.jar),使得Log4j可以被SLF4J调用。这样做的...
在整合SLF4J与Log4j时,首先需要在项目中引入SLF4J的API库(slf4j-api-1.7.5.jar)和SLF4J对Log4j的绑定实现(slf4j-log4j12-1.7.5.jar)。同时,还需要Log4j自身的库(log4j-1.2.x.jar),以提供实际的日志记录服务...
在给定的标题和描述中提到的"log4j-1.2.16.jar"和"slf4j-api-1.6.1.jar"都是Java日志框架中的关键组件,而"转换包"则是为了实现这两个框架之间的兼容性。接下来,我们将深入探讨这些组件以及如何结合使用。 **Log4j...
`log4j-slf4j-impl`是将SLF4J的日志调用桥接到log4j的实现,而`log4j-to-slf4j`则是将log4j的API桥接到SLF4J,方便迁移至其他日志框架。 当`log4j-slf4j-impl`和`log4j-to-slf4j`同时存在时,会导致日志配置混乱,...
Spring框架与Log4j 2的整合允许开发者方便地在Spring应用中插入日志记录,提供了一种标准的方式来管理和控制应用的日志输出。通过Spring的ApplicationContext,可以方便地配置Log4j 2的设置,例如日志级别、输出目的...
本文将深入探讨这两个jar文件——`slf4j-api-1.6.1.jar`和`slf4j-log4j12-1.6.1.jar`的功能、用途以及如何在项目中进行整合。 首先,`slf4j-api-1.6.1.jar`是SLF4J的API库,它提供了一个统一的日志接口,允许开发者...
SLF4J(Simple Logging Facade for Java)和Log4j是Java日志处理的两个重要组件。SLF4J是一个日志门面,提供一个简单的API,允许开发者选择底层的日志实现,如Log4j、Java Util Logging、Logback等。Log4j则是一个...
与log4j2紧密集成的log4j-slf4j-bridge模块,使log4j2可以作为SLF4J的实现,允许应用程序使用SLF4J API进行日志记录,同时使用log4j2作为后端。这样,应用程序可以享受到log4j2的高性能和灵活性,同时又可以利用SLF4...
为了解决这个问题,我们需要引入一个桥接包来桥接SLF4J和Log4j: 1. 创建配置文件:与之前一样,放置`log4j.xml`或`log4j.properties`在SRC目录下。 2. 添加依赖:除了`log4j-1.2.15.jar`之外,还需要添加`slf4j-...
通过整合Hibernate3.3.1和SLF4J-Log4j12-1.5.2,开发者可以方便地监控应用程序的运行状态,查看SQL执行情况,定位性能瓶颈。日志系统还可以用于记录异常信息,辅助问题诊断。SLF4J的灵活性使得在项目不同阶段可以...
slf4j整合log4j包,1.6.1版
本篇文章将深入探讨如何将Hibernate与log4j整合,以便在开发过程中获得更详细的日志信息。 首先,`log4j`是Apache的一个开源项目,它提供了一个灵活的日志系统,允许开发者在运行时控制日志信息的输出级别,同时...
本文将详细介绍如何使用`jcl-over-slf4j-1.6.0.jar`这个桥接包,实现从JCL到SLF4J的日志系统转换,并探讨其实际应用和使用场景。 首先,JCL(Jakarta Commons Logging)是一个轻量级的日志接口,它允许开发者在不...
SLF4J 1.7.12版本是该库的一个稳定版本,包含了各种必需的JAR包和整合资料,以帮助开发者在他们的应用程序中实现灵活的日志记录。 SLF4J的主要优点在于它的可插拔性。通过使用SLF4J,开发者可以在不修改代码的情况...
整合SLF4J和Log4j 1.2的目的是为了获得更灵活的日志控制,而CXF与SSH的整合则有助于构建一个完整的、基于Web服务的后端系统。这种整合可以帮助开发者更高效地调试、监控和管理应用程序,提升开发效率和应用性能。在...
【标题】"springMvc+mybaties+slf4j" 涉及的技术栈是企业级应用开发中常见的组合,主要包括Spring MVC、MyBatis和SLF4J。这三者分别是Spring框架的Web模块、轻量级持久层框架和日志门面。 【Spring MVC】是Spring...
如标题和描述所提及,我们需要`log4j-api-2.3`和`slf4j-api-1.7.25`这两个日志处理库,它们是Spring和MyBatis日志记录的基础。`log4j-core-2.3.jar`是Log4j的具体实现,而`log4j-1.2.17.jar`则是旧版本的Log4j,用于...
slf4j-log4j12-1.5.2.jar Hibernate3 ssh整合