欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

slf4j与log4j全面了解

程序员文章站 2024-03-13 15:03:39
推荐使用slf4j(simple logging facade for java)作为日志的api,slf4j是一个用于日志系统的简单facade,允许最终用户在部署其应用...

推荐使用slf4j(simple logging facade for java)作为日志的api,slf4j是一个用于日志系统的简单facade,允许最终用户在部署其应用时使用其所希望的日志系统。

1、slf4j优势

与使用apache commons-logging或直接使用log4j相比,slf4j提供了一个名为参数化日志的高级特性,可以显著提高在配置为关闭日志的情况下的日志语句性能,

log.debug("found {} records matching filter: '{}'", records, filter);//slf4j

log.debug("found " + records + " records matching filter: '" + filter + "'");//log4j

可以看出slf4j的优点有:更简略易读;在日志级别不够时,少了字符串拼接的开销,不会调用对象(records/filter)的tostring方法。

slf4j在1.6.0之后,更是支持了异常堆栈的打印,作为最后一个参数传入即可,基本满足了日志的常见打印场景。

log.error("failed to format {}", s, e);

2、注意logger间的继承关系

logger的继承是通过命名来实现的。

子logger会默认继承父logger的appender,将它们加入到自己的appender中;除非加上了additivity="false",则不再继承父logger的appender。

子logger只在自己未定义输出级别的情况下,才会继承父logger的输出级别。

以上这篇slf4j与log4j全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。