Log4j和Slf4j的比较

  简单日记门面(simple logging Facade for java)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希
望的loging APIs实现。准确的说,slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade,允许用户在部署最终应用时方便的变更其日志系统。

在系统开发中,统一按照slf4j的API进行开发,在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。比如:选择JDK自带的日志系统,

则只需要将slf4j-api-1.5.10.jar和slf4j-jdk14-1.5.10.jar放置到classpath中即可,如果中途无法忍受JDK自带的日志系统了,想换成log4j的日志系统,

仅需要用slf4j-log4j12-1.5.10.jar替换slf4j-jdk14-1.5.10.jar即可(当然也需要log4j的jar及配置文件)

SLF4J获得logger对象:

private static final Logger logger = LoggerFactory.getLogger(Test.class);

LOG4J获得logger对象:

private static Logger logger = Logger.getLogger(Test.class);

总结:

  1. 大部分人在程序里面会去写logger.error(exception),其实这个时候log4j回去把这个exception tostring。真正的写法应该是logger(message.exception);而slf4j就不会使得程序员犯这个错误。
  2. log4j间接的在鼓励程序员使用string相加的写法,而slf4j就不会有这个问题。
  3. 你可以使用logger.error("{} is+serviceid",serviceid);
  4. 使用slf4j可以方便的使用其提供的各种集体的实现的jar。(类似commons-logger)
  5. 从commons--logger和log4j merge非常方便,slf4j也提供了一个swing的tools来帮助大家完成这个merge。
时间: 2024-10-19 02:10:00

Log4j和Slf4j的比较的相关文章

log4j+logback+slf4j+commons-logging的关系与调试(转)

log4j+logback+slf4j+commons-logging的关系与调试 从Log4j迁移到LogBack的理由 http://www.tuicool.com/articles/beeeYvF 为什么要使用SLF4J而不是Log4J

JavaEE SSH框架整合(四) 日志处理Spring结合 log4j、slf4j [转]

1. 加入log4j和slf4j的jar包 2. web.xml: [html] view plaincopyprint? <context-param> <!--log4j配置地址 --> <param-name>log4jConfigLocation</param-name> <!-- <param-value>/WEB-INF/classes/log4j.properties</param-value> --> &l

SSH框架整合 日志处理Spring结合 log4j、slf4j

1. 加入log4j和slf4j的jar包 2. web.xml: 1 <context-param> 2 <!--log4j配置地址 --> 3 <param-name>log4jConfigLocation</param-name> 4 <!-- <param-value>/WEB-INF/classes/log4j.properties</param-value> --> 5 <param-value>c

java日志,(commons-loging 、log4j 、slf4j 、LogBack介绍)

如果对于commons-loging .log4j .slf4j .LogBack 等都已经非常清楚了,可以忽略本文.几次解决日志冲突问题时对这几个概念的简单总结,希望对这块基础没有理解透的同学能有所帮助,当然如果对这块有更深刻理解的同学,也贡献出自己的知识和见解. 一.     概念 Commons-logging : apache最早提供的日志的门面接口.避免和具体的日志方案直接耦合.类似于JDBC 的api 接口,具体的的JDBC driver 实现由各数据库提供商实现.通过统一接口解耦,

JavaEE SSH框架整合(四) 日志处理Spring结合 log4j、slf4j

1. 加入log4j和slf4j的jar包 2. web.xml: <context-param> <!--log4j配置地址 --> <param-name>log4jConfigLocation</param-name> <!-- <param-value>/WEB-INF/classes/log4j.properties</param-value> --> <param-value>classpath:l

SSM框架下结合 log4j、slf4j打印日志

首先加入log4j和slf4j的jar包 <!-- 日志处理 <!-- slf4j日志包--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <dependency> <groupId>

Java项目中如何使用log4j和slf4j实现日志打印

什么是log4j? Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 什么是slf4j? SLF4J,即简单日志门面(Simple Logging Facade fo

日志管理-log4j与slf4j的使用

一.概述 1.log4j: Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 2.slf4j: SLF4J,即简单日志门面(Simple Logging Facade

log4j+logback+slf4j+commons-logging的关系与调试(转)

背景     由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存.导致日志输出异常混乱.虽然也不至于对系统造成致命伤害,但是明显可以看出,架构不够精良,追求极致略有不足.     其中有一些标准通用接口,标准实现,各种桥接器的存在,下面就让笔者树立一下这些框架之间的关系. 从上图中,我们可以看到4部分. 接口:将所有日志实现适配到了一起,用统一的接口调用. 实现:目前主流的日志实现 旧日志到slf4j的适配器:如果使用了slf4j,但是只

log4j+logback+slf4j+commons-logging的关系与调试

背景     由于现在开源框架日益丰富,好多开源框架使用的日志组件不尽相同.存在着在一个项目中,不同的版本,不同的框架共存.导致日志输出异常混乱.虽然也不至于对系统造成致命伤害,但是明显可以看出,架构不够精良,追求极致略有不足.     其中有一些标准通用接口,标准实现,各种桥接器的存在,下面就让笔者树立一下这些框架之间的关系.  从上图中,我们可以看到4部分. 接口:将所有日志实现适配到了一起,用统一的接口调用. 实现:目前主流的日志实现 旧日志到slf4j的适配器:如果使用了slf4j,但是