`

[转]SLF4J和Logback日志框架详解

阅读更多

转自:http://blog.csdn.net/chszs/article/details/8653460

 

SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。

LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序。

SLF4J

SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback、Log4j、Commons-logging和JDK自带的logging实现接口。它使得用户可以在部署时使用自己想要的日志框架。SLF4J是轻量级的,在性能方面几乎是零消耗的。

SLF4J没有替代任何日志框架,它仅仅是标准日志框架的外观模式。如果在类路径下除了SLF4J再没有任何日志框架,那么默认状态是在控制台输出日志。

Logback

Logback是Log4j的改进版本,而且原生支持SLF4J(因为是同一作者开发的),因此从其它日志框架如Log4j或JDK的logging迁移到Logback是完全可行的。

由于Logback原生支持SLF4J,因此Logback+SLF4J的组合是日志框架的最佳选择,比SLF4J+其它日志框架的组合要快一些。而且Logback的配置可以是XML或Groovy代码。

注意一个重要的特性,Logback通过JMX修改日志配置(比如日志级别从Debug调整到INFO),可以从JMX控制台直接操作,无需重启应用程序。

此外,Logback的异常堆栈跟踪的信息,有助于调试。

[java] view plain copy
 
 print?
  1. java.lang.NullPointerException: null  
  2. at com.fimt.poc.LoggingSample.<init>(LoggingSample.java:16) [classes/:na]  
  3. at com.fimt.poc.LoggingSample.main(LoggingSample.java:23) [fimt-logging-poc-1.0.jar/:1.0]  

 

SLF4J API用法

1. 从org.slf4j包导入Logger和LoggerFactory

[java] view plain copy
 
 print?
  1. import org.slf4j.Logger;  
  2. import org.slf4j.LoggerFactory;  

 

2. 声明日志类

[java] view plain copy
 
 print?
  1. private final Logger logger = LoggerFactory.getLogger(LoggingSample.class);  

 

3. 使用debug、warn、info、error方法并跟踪适合的参数。

所有的方法默认都使用字符串作为输入。

[java] view plain copy
 
 print?
  1. logger.info("This is sample info statement");  

 

SLF4J结合Logback

在pom.xml包含下面的依赖:它会自动包含所有的依赖包logback-core、slf4j-api……

[html] view plain copy
 
 print?
  1. <dependency>  
  2.   <groupId>ch.qos.logback</groupId>  
  3.   <artifactId>logback-classic</artifactId>  
  4.   <version>1.0.7</version>  
  5. </dependency>  


SLF4J能用于现有的日志框架如Log4j、Commons-logging、java.util.logging(JUL)。

SLF4J结合Log4j

在pom.xml包含下面的依赖

[html] view plain copy
 
 print?
  1. <dependency>  
  2.   <groupId>org.slf4j</groupId>  
  3.   <artifactId>slf4j-log4j12</artifactId>  
  4.   <version>1.7.2</version>  
  5. </dependency>  

 

SLF4J结合JUL (java.util.logging)

在pom.xml包含下面的依赖

 

[html] view plain copy
 
 print?
  1. <dependency>  
  2.   <groupId>org.slf4j</groupId>  
  3.   <artifactId>slf4j-jdk14</artifactId>  
  4.   <version>1.7.2</version>  
  5. </dependency>  

 

分享到:
评论

相关推荐

    详解Spring Boot 使用slf4j+logback记录日志配置

    使用 SLF4J 和 Logback 进行日志记录配置的主要目的是: 1. 为 Spring 的开发提供了一个更快速更广泛的入门方法。 2. 使用默认方式实现快速开发。 3. 提供项目所需的一些非功能特性,如嵌入式服务器、安全、心跳...

    slf4j日志框架的源代码分享

    SLF4J(Simple Logging Facade for Java)是Java中的一种日志门面(Logging Facade),它为各种日志框架提供了一个简单的统一接口,如Log4j、Java Util Logging、Logback等。通过SLF4J,开发者可以在运行时绑定任意...

    Slf4j日志相关jar包

    **Slf4j日志框架详解** Slf4j(Simple Logging Facade for Java)是一个用于日志系统的简单 facade,它允许最终用户在部署他们的应用时使用他们希望的日志库。Slf4j提供了一个统一的API,使得开发人员能够在不更换...

    详解slf4j+logback在java工程中的配置

    SLF4J(Simple Logging Facade for Java)和Logback是Java开发中广泛使用的日志框架,它们提供了灵活的日志记录解决方案。SLF4J是一个接口层,它为各种日志框架提供了统一的抽象,而Logback是SLF4J的一个实现,用于...

    logback + slf4j web项目源码

    2. **SLF4J (Simple Logging Facade for Java)**: SLF4J 提供了一组API,使得开发人员能够插入他们所选择的日志框架,例如Logback、log4j等。它是一个抽象层,允许用户在部署时选择合适的日志实现,通过简单的API...

    SLF4J配置应用

    2. **Logback**:Logback是Log4j的创始人Ceki Gülcü的新一代日志框架,分为`logback-core`、`logback-classic`和`logback-access`三个模块。其中`logback-classic`模块是对Log4j的一种改进,同时它也完全实现了SLF...

    logbackーslf4j-配置文件实例 难得

    在Java开发中,日志管理是不可或缺的一部分,Logback和SLF4J(Simple Logging Facade for Java)是广泛使用的日志框架。SLF4J提供了一个接口层,允许开发者选择任何底层的日志实现,而Logback则是一个高效的日志实现...

    日志框架log4j和slf4j入门教程(私塾在线)视频配套学习资料

    ### 日志框架log4j和slf4j入门教程知识点详解 #### 一、Log4j简介 **Log4j** 是Apache组织下的一个开源项目,主要用于Java应用程序的日志记录功能。通过Log4j,开发者可以灵活地控制日志信息的输出格式、输出目的...

    slf4j使用手册

    SLF4J(Simple Logging Facade for Java)是一个用于多种日志框架的简化接口或抽象层,旨在将日志的创建者与具体的日志实现进行解耦。通过这种方式,开发人员可以在开发阶段使用自己熟悉的日志实现,在生产或测试...

    logback-1.2.3&slf4j-1.7.25.rar

    《Java日志框架Logback与SLF4J详解》 在Java开发中,日志记录是不可或缺的一部分,它能够帮助开发者追踪程序运行状态,定位问题,优化性能。Logback和SLF4J(Simple Logging Facade for Java)是Java世界中广泛使用...

    slf4j+log4j2配置使用

    接下来,将详细介绍SLF4J和Log4j2的配置使用。 ### SLF4J与Log4j2的配合使用 在Spring Boot项目中,可以使用SLF4J作为日志门面,通过Log4j2实现日志记录。首先需要在项目中排除Spring Boot默认的日志实现(即...

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

    SLF4J可以与不同的日志框架集成,例如Log4j、Logback等。SLF4J的桥接器可以将SLF4J的日志请求转换为不同的日志框架的日志请求,从而使得SLF4J可以与不同的日志框架集成。 在实际应用中,我们可以使用SLF4J作为日志...

    slf4j-nop-1.7.3.jar

    - **接口层**:SLF4J提供了与具体日志框架无关的API,使得开发人员可以在不改变代码的情况下切换不同的日志实现,如Log4j、Java Util Logging、Logback等。 - **绑定**:在项目运行时,需要选择一个具体的日志实现...

    logback jar包和logback.xml配置文件打包下载 小白新手学Java

    在Java开发中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行状态,调试问题,以及记录系统事件...同时,由于SLF4J的接口特性,使得在项目中切换其他日志框架变得非常方便,提高了项目的可维护性和扩展性。

    如何将应用的log4j替换成logback详解

    4. SLF4J集成:Logback是SLF4J(Simple Logging Facade for Java)的默认实现,允许使用相同的API与不同的日志框架进行切换。 要将Log4j替换为Logback,主要涉及以下步骤: 1. 移除Log4j相关依赖:从项目的`pom....

    logback日志配置

    Logback 是一款非常流行的 Java 日志框架,它由 Ceki Gülcü 开发并维护,作为 log4j 的一个优秀替代品出现。Logback 相对于 log4j 有着更好的性能表现,并且拥有更加灵活的配置方式。在实际开发过程中,logback 因...

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

    SLF4J(Simple Logging Facade for Java)是一个为各种日志框架提供一个简单统一的API,例如Log4j、Java Util Logging、Logback等。它的目标是允许最终用户在部署时插入所需的日志框架。SLF4J-Log4j12-1.5.2是SLF4J...

    Spring Boot中slf4j日志依赖关系示例详解

    Spring Boot默认集成了SLF4J和Logback作为其日志系统。 首先,让我们了解Spring Boot与SLF4J的依赖关系。Spring Boot本身并不直接依赖于特定的日志实现,而是依赖于SLF4J API。这是因为SLF4J提供了一个接口,允许...

    java日志框架

    Java日志框架是Java开发中不可或缺的部分,它们用于记录应用...综上所述,Log4j和Logback都是强大的日志框架,它们在Java开发中扮演着重要角色。理解并熟练使用这些框架,可以帮助我们更好地监控和维护我们的应用程序。

    log4j所需jar包

    - **灵活性**: SLF4J支持多种日志框架,包括Log4j、Logback等,可以根据项目需求选择最适合的日志实现。 总结来说,"apache-log4j-1.2.16.zip"是一个包含Log4j核心库的压缩包,配合"slf4j-log4j12-1.7.2.jar"适配器...

Global site tag (gtag.js) - Google Analytics