`
chenming47
  • 浏览: 94249 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

slf4j配置实例

阅读更多

1、  简介

SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。

实际上,SLF4J所提供的核心API是一些接口以及一个LoggerFactory的工厂类。从某种程度上,SLF4J有点类似JDBC,不过比JDBC更简单,在JDBC中,你需要指定驱动程序,而在使用SLF4J的时候,不需要在代码中或配置文件中指定你打算使用那个具体的日志系统。如同使用JDBC基本不用考虑具体数据库一样,SLF4J提供了统一的记录日志的接口,只要按照其提供的方法记录即可,最终日志的格式、记录级别、输出方式等通过具体日志系统的配置来实现,因此可以在应用中灵活切换日志系统。

2、  什么情况下使用

如果你开发的是类库或者嵌入式组件,那么就应该考虑采用SLF4J,因为不可能影响最终用户选择哪种日志系统。在另一方面,如果是一个简单或者独立的应用,确定只有一种日志系统,那么就没有使用SLF4J的必要。假设你打算将你使用log4j的产品卖给要求使用JDK 1.4 Logging的用户时,面对成千上万的log4j调用的修改,相信这绝对不是一件轻松的事情。但是如果开始便使用SLF4J,那么这种转换将是非常轻松的事情

3、  源码及jar包下载地址

http://www.slf4j.org/download.html

4、  调用举例

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

public class Wombat {

   final Logger logger = LoggerFactory.getLogger(Wombat.class);

   Integer t;

   Integer oldT;

   public void setTemperature(Integer temperature) {

             oldT = t;

             t = temperature;

             Object[] objs = {new java.util.Date(), oldT, t};

             logger.info("Today is {}, Temperature set to {}. Old temperature was {}.", objs);

             if (temperature.intValue() > 50) {

                      logger.warn("Temperature({}) has risen above 50 degrees.", t);

             }

   }

   public static void main(String[] args) {

             Wombat wombat = new Wombat();

             wombat.setTemperature(10);

             wombat.setTemperature(60);

   }

}

5、  日志绑定原理

在应用中,通过LoggerFactory类的静态getLogger()获取logger。通过查看该类的代码可以看出,最终是通过StaticLoggerBinder.SINGLETON.getLoggerFactory()方法获取LoggerFactory然后,在通过该具体的LoggerFactory来获取logger的。类org.slf4j.impl.StaticLoggerBinder并不在slf4j-api-1.*.*.jar包中,仔细查看每个与具体日志系统对应的jar包,就会发现,相应的jar包都有一个org.slf4j.impl.StaticLoggerBinder的实现,不同的实现返回与该日志系统对应的LoggerFactory,因此就实现了所谓的静态绑定,达到只要选取不同jar包就能简单灵活配置的目的。

6、  日志系统的切换

编译上边的程序,需要classpath中加入slf4j-api-1.4.1.jar文件。
运行时,需要classpath中加上slf4j-simple-1.4.1.jar

切换到jdk14log的风格:只需要把slf4j-simple-1.4.1.jarclasspath中移除,同时classpath中加入slj4j-jdk14-1.4.1.jar

切换到log4j:同样移除slj4j-jdk14-1.4.1.jar,加入slf4j-log4j12-1.4.1.jar,同时加入log4j-1.2.x.jar加入log4j.properties

分享到:
评论
2 楼 java_ZJian 2013-04-18  
  谢谢 
1 楼 hhfhwm 2011-09-02  
谢谢!

相关推荐

    slf4j-api-1.7.12.jar slf4j-log4j12-1.7.12.jar

    SLF4J(Simple Logging Facade for...`slf4j-api-1.7.12.jar`和`slf4j-log4j12-1.7.12.jar`分别是SLF4J API和SLF4J到Log4j的绑定,它们共同工作,使开发者能够利用Log4j的强大功能,同时保持代码与具体日志系统的分离。

    SLF4j中文使用手册

    使用SLF4J输出日志的典型方式是通过LoggerFactory获取Logger实例。例如,获取一个名为“HelloWorld”的记录器后,开发者可以使用info、debug、error等不同的日志级别方法来记录日志信息。如果在类路径中没有找到绑定...

    slf4j-api-1.7.26.zip

    总的来说,SLF4J API是日志记录的关键组件,它通过提供一个统一的接口来解耦应用代码和日志实现,从而简化了项目的配置和维护。在实际开发中,结合具体的日志库使用SLF4J可以提高代码的可移植性和适应性。

    slf4j + logback配置实例

    本文将通过一个配置实例,详细介绍如何在项目中集成和使用SLF4J与Logback。 首先,我们需要在项目的类路径下添加SLF4J和Logback的相关依赖。通常,这包括`slf4j-api.jar`(SLF4J API)、`logback-classic.jar`...

    slf4j日志框架的源代码分享

    5. **NoBinding**: 如果没有找到合适的日志实现,SLF4J会使用一个名为NoBinding的日志绑定,它会在控制台输出警告信息,提醒用户未正确配置日志实现。 SLF4J源码中值得关注的部分包括: 1. **Logger接口**: 定义了...

    slf4j-1.7.12

    4. **日志配置**:虽然SLF4J API提供了日志记录的基本功能,但具体的日志格式、输出位置和级别控制通常由底层日志实现(如Logback或Log4j的配置文件)决定。例如,对于Logback,配置文件通常为`logback.xml`,而对于...

    slf4j-api-1.7.7.jar下载

    3. **分离关注点**:SLF4J允许将日志配置与应用程序代码分离,使得配置可以在部署时独立调整,而无需重新编译或打包应用。 4. **模块化**:SLF4J的设计使其易于在模块化的项目中使用,每个模块可以独立地使用SLF4J...

    slf4j 所需要的jar包

    4. **日志记录API**:在代码中,通过SLF4J的`LoggerFactory`获取`Logger`实例,然后使用`debug()`, `info()`, `warn()`, `error()`等方法进行日志记录。 5. **性能考虑**:虽然SLF4J提供了方便的API,但在生产环境...

    slf4j-api-1.7.30.jar

    SLF4J(Simple Logging Facade for Java)是Java中的一种日志门面,它提供了一个简单的接口,允许开发者在不修改代码的情况下切换不同的日志实现。SLF4J的出现是为了统一各种日志框架,如Log4j、java.util.logging、...

    slf4j-log4j12 等jar包.rar

    SLF4J的使用主要包括创建Logger实例,设置日志级别,以及使用各种方法输出日志,如`info()`, `debug()`, `error()`等。 2. **Log4j 1.2**:Log4j是Apache的一个开源项目,它提供了丰富的日志功能,包括日志级别...

    Spring Boot SLF4J日志实例 / Logback

    这个实例将围绕Spring Boot如何集成SLF4J(Simple Logging Facade for Java)和Logback进行详细讲解。 SLF4J是一个日志门面,提供了一种标准的日志API,允许我们在部署时选择不同的日志实现。Logback是SLF4J的一个...

    slf4j-log4j12-1.7.2.jar 亲测可用

    4. 使用SLF4J API:在你的代码中,你可以通过SLF4J的LoggerFactory获取一个Logger实例,然后使用各种方法(如`debug()`, `info()`, `warn()`, `error()`等)进行日志记录。 例如: ```java import org.slf4j.Logger...

    slf4j-api-1.6.1.jar + slf4j-nop-1.6.1.jar

    在实际应用中,除了将SLF4J API和NOP实现加入类路径外,还需要根据所选日志框架的特性配置相应的配置文件,如Logback的`logback.xml`或Log4j的`log4j.properties`。这些配置文件定义了日志的级别、输出目的地、格式...

    Slf4j-1.5.8

    3. 在代码中使用SLF4J的`LoggerFactory.getLogger()`方法获取`Logger`实例,并使用该实例进行日志记录。 4. 配置日志实现(如logback.xml配置文件),以定制日志输出格式、级别和目标。 SLF4J 1.5.8版本可能已经...

    slf4j1.7.25+ log4j2.8.2 集成jar包

    在代码中,你可以使用SLF4J的LoggerFactory获取一个Logger实例,然后通过这个实例进行日志记录。SLF4J的API提供了各种方法,如`info()`, `debug()`, `warn()` 和 `error()`,对应不同级别的日志输出。 7. **总结**...

    slf4j+log4j

    在代码中,我们使用SLF4J的LoggerFactory获取Logger实例,然后通过这个实例进行日志记录: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { private static final...

    java slf4j

    四、SLF4J的优点 1. **解耦**:SLF4J将日志记录与应用代码解耦,使得日志框架的更换不影响业务逻辑。 2. **灵活性**:开发者可以根据项目的特性、性能需求以及团队习惯选择合适的日志实现。 3. **社区支持**:...

    log4j+slf4j实现 log4j测试代码,log4j+slf4j实现 log4j测试代码

    本文将详细探讨如何通过SLF4J接口来使用Log4j进行日志记录,并展示一个测试代码实例。 **SLF4J简介** SLF4J是一个抽象层,为各种日志框架提供了统一的API,如Logback、Log4j等。它的主要优点在于可以让你在不修改...

    slf4j-1.5.10.zip

    2. **API使用**: 使用SLF4J API非常简单,只需通过`LoggerFactory`获取`Logger`实例,然后调用如`info()`, `debug()`, `error()`等方法进行日志记录。 3. **日志配置**: 虽然SLF4J本身不负责日志的输出格式和级别...

    Using slf4j with logback

    接下来,我们来看看如何配置Logback作为SLF4J的日志实现。Logback的核心组件包括`ch.qos.logback.classic.LoggerContext`,它是日志配置的上下文,以及`ch.qos.logback.classic.Logger`,它是实际的日志器类。在`src...

Global site tag (gtag.js) - Google Analytics