`

log4j和slf4j的整合

阅读更多
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 实现

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("这是什么");
	}
	
}
  • 大小: 50.2 KB
分享到:
评论

相关推荐

    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案.docx

    删除项目中存在的Log4j1.x所必须的log4j和slf4j-log4j12等依赖可以使用以下命令: mvn dependency:tree > tree.log cat tree.log | grep log4j 添加Slf4j和Log4j2的依赖可以使用以下配置: <groupId>org.slf4j ...

    log4j_slf4j.jar

    SLF4J(Simple Logging ...总的来说,“log4j_slf4j.jar”是一个方便的组合包,它整合了SLF4J和Log4j,使得开发者可以轻松地在项目中实现日志记录,同时保留了更换日志框架的可能性,提高了项目的可维护性和可移植性。

    hibernate3-log4j-slf4j所有包

    **整合Log4j和SLF4J** 在"hibernate3-log4j-slf4j"的场景中,我们通常会将SLF4J作为日志接口,然后使用Log4j作为具体的日志实现。SLF4J提供了一个桥接器(slf4j-log4j12.jar),使得Log4j可以被SLF4J调用。这样做的...

    slf4j与log4j整合包

    在整合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加个转换包和log4j.properties示例

    在给定的标题和描述中提到的"log4j-1.2.16.jar"和"slf4j-api-1.6.1.jar"都是Java日志框架中的关键组件,而"转换包"则是为了实现这两个框架之间的兼容性。接下来,我们将深入探讨这些组件以及如何结合使用。 **Log4j...

    SpringTestLog.rar

    `log4j-slf4j-impl`是将SLF4J的日志调用桥接到log4j的实现,而`log4j-to-slf4j`则是将log4j的API桥接到SLF4J,方便迁移至其他日志框架。 当`log4j-slf4j-impl`和`log4j-to-slf4j`同时存在时,会导致日志配置混乱,...

    apache-log4j-2.14.0-bin.zip

    Spring框架与Log4j 2的整合允许开发者方便地在Spring应用中插入日志记录,提供了一种标准的方式来管理和控制应用的日志输出。通过Spring的ApplicationContext,可以方便地配置Log4j 2的设置,例如日志级别、输出目的...

    slf4j-log4j12-1.6.1.jar+slf4j-api-1.6.1.jar

    本文将深入探讨这两个jar文件——`slf4j-api-1.6.1.jar`和`slf4j-log4j12-1.6.1.jar`的功能、用途以及如何在项目中进行整合。 首先,`slf4j-api-1.6.1.jar`是SLF4J的API库,它提供了一个统一的日志接口,允许开发者...

    slf4j结合log4j的demo,带配置文件

    SLF4J(Simple Logging Facade for Java)和Log4j是Java日志处理的两个重要组件。SLF4J是一个日志门面,提供一个简单的API,允许开发者选择底层的日志实现,如Log4j、Java Util Logging、Logback等。Log4j则是一个...

    log4j2+slf4j+spring4+mybatis的整合使用

    与log4j2紧密集成的log4j-slf4j-bridge模块,使log4j2可以作为SLF4J的实现,允许应用程序使用SLF4J API进行日志记录,同时使用log4j2作为后端。这样,应用程序可以享受到log4j2的高性能和灵活性,同时又可以利用SLF4...

    mybatis整合log4j

    为了解决这个问题,我们需要引入一个桥接包来桥接SLF4J和Log4j: 1. 创建配置文件:与之前一样,放置`log4j.xml`或`log4j.properties`在SRC目录下。 2. 添加依赖:除了`log4j-1.2.15.jar`之外,还需要添加`slf4j-...

    hibernate3.3.1接口实现包 slf4j-log4j12-1.5.2

    通过整合Hibernate3.3.1和SLF4J-Log4j12-1.5.2,开发者可以方便地监控应用程序的运行状态,查看SQL执行情况,定位性能瓶颈。日志系统还可以用于记录异常信息,辅助问题诊断。SLF4J的灵活性使得在项目不同阶段可以...

    slf4j-log4j12-1.6.1.jar

    slf4j整合log4j包,1.6.1版

    hibernate整合log4j jar包

    本篇文章将深入探讨如何将Hibernate与log4j整合,以便在开发过程中获得更详细的日志信息。 首先,`log4j`是Apache的一个开源项目,它提供了一个灵活的日志系统,允许开发者在运行时控制日志信息的输出级别,同时...

    jcl-over-slf4j-1.6.0.jar logbank转log4j 日志转换 使用场景 实例

    本文将详细介绍如何使用`jcl-over-slf4j-1.6.0.jar`这个桥接包,实现从JCL到SLF4J的日志系统转换,并探讨其实际应用和使用场景。 首先,JCL(Jakarta Commons Logging)是一个轻量级的日志接口,它允许开发者在不...

    slf4j-1.7.12

    SLF4J 1.7.12版本是该库的一个稳定版本,包含了各种必需的JAR包和整合资料,以帮助开发者在他们的应用程序中实现灵活的日志记录。 SLF4J的主要优点在于它的可插拔性。通过使用SLF4J,开发者可以在不修改代码的情况...

    slf4j-all-log4j12-1.4.3.jar.zip CXF整合SSH你可能需要它

    整合SLF4J和Log4j 1.2的目的是为了获得更灵活的日志控制,而CXF与SSH的整合则有助于构建一个完整的、基于Web服务的后端系统。这种整合可以帮助开发者更高效地调试、监控和管理应用程序,提升开发效率和应用性能。在...

    springMvc+mybaties+slf4j

    【标题】"springMvc+mybaties+slf4j" 涉及的技术栈是企业级应用开发中常见的组合,主要包括Spring MVC、MyBatis和SLF4J。这三者分别是Spring框架的Web模块、轻量级持久层框架和日志门面。 【Spring MVC】是Spring...

    spring整合mybatis所需jar包包括log4j-api-2.3,slf4j-api-1.7.25等

    如标题和描述所提及,我们需要`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

    slf4j-log4j12-1.5.2.jar Hibernate3 ssh整合

Global site tag (gtag.js) - Google Analytics