log4j的作者Ceki Gülcü在停止维护log4j后开始新的日志组件的开发,他的新作为日志门面slf4j以及log4j的替代品logback。不过logback至今还没有出1.0的正式版,所以使用率并不算高。反而是slf4j几乎已经称为业界日志的统一接口,在hibernate、mina等很多重要的框架中都有所试用。
slf4j作为日志门面,比之单纯的log4j有很多优点。
诸如下面这样的代码,在log4j中应该很常见
logger.info("this is "+ user.getpasswd());
这个是变相的字符串拼接
而利用slf4j作为门面,这句代码可以写完
logger.info("this is {}",user.getpasswd());
更符合程序员的逻辑
log4j层次判断也是让我们头疼的问题,slf4j可以完全不用理会这点,诸如if(logger.isdebugenable()){}
这样的代码可以不用在重复出现在我们的代码中
当然,slf4j作为日志门面,可以和很多常见的日志模块相接,在选择添加jar包时选取slf4j-api-1.*.*.jar和对应的日志模块jar包可以了。
简单代码
如果想利用slf4j的简单日志功能,就选择slf4j-simple-1.5.10.jar
那这时这段代码输出的日志就是“简单日志”风格的log
[quote]1 [main] INFO test.Test - the input is 5[/quote]
如果还是喜欢log4j风格,可以选择替换为slf-log4j12-1.5.10.jar,并加上log4j.jar,还是一样的代码,就可以输出log4j风格的日志了
附件附上几个常用的jar包
再有就是项目地址,源码有下载:www.slf4j.org
slf4j作为日志门面,比之单纯的log4j有很多优点。
诸如下面这样的代码,在log4j中应该很常见
logger.info("this is "+ user.getpasswd());
这个是变相的字符串拼接
而利用slf4j作为门面,这句代码可以写完
logger.info("this is {}",user.getpasswd());
更符合程序员的逻辑
log4j层次判断也是让我们头疼的问题,slf4j可以完全不用理会这点,诸如if(logger.isdebugenable()){}
这样的代码可以不用在重复出现在我们的代码中
当然,slf4j作为日志门面,可以和很多常见的日志模块相接,在选择添加jar包时选取slf4j-api-1.*.*.jar和对应的日志模块jar包可以了。
简单代码
public class Test{
final Logger logger = LoggerFactory.getLogger(Test.class);
public void log(int index){
logger.info("the input is {}",index);
}
public static void main(String[] args){
Test t = new Test(5);
t.log();
}
}
如果想利用slf4j的简单日志功能,就选择slf4j-simple-1.5.10.jar
那这时这段代码输出的日志就是“简单日志”风格的log
[quote]1 [main] INFO test.Test - the input is 5[/quote]
如果还是喜欢log4j风格,可以选择替换为slf-log4j12-1.5.10.jar,并加上log4j.jar,还是一样的代码,就可以输出log4j风格的日志了
附件附上几个常用的jar包
再有就是项目地址,源码有下载:www.slf4j.org