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