slf4j与log4j全面了解
推荐使用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全面了解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读