slf4j log4j logback区别

log4j和logback就是两个受欢迎的日志框架,同时logback同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架。而slf4j是java的一个日志门面,实现了日志框架一些通用的api,log4j和logback是具体的日志框架,他们可以单独的使用,也可以绑定slf4j一起使用。

关系

slf4j log4j logback区别

1、第一列“SLF4J unbound”:意思是如果应用中只导入“slf4j-api.jar日志门面”,没有导入slf4j实现时,则所有调用日志记录的方法都会无效,即不会有记录

2、第二列“SLF4J bound to logback-classic”:意思是如果导入了“slf4j-api.jar日志门面”及实现“logback-classic”的jar包,则调用SLF4J之后底层会以logback进行记录

3、第三列“SLF4J bound to log4j”:意思是导入了“slf4j-api.jar日志门面”及实现“log4j.jar”包之后,中间还要导入一个适配包“slf4j-log412.jar”,所以当应用中调用SLF4J记录日志的时候,会先经过适配包,最后调用实现包

上图可以看到应用程序对日志框架的调用关系。应用程序调用slf4j api,而日志的输出最终是由底层的日志框架来实现的。这张图也提现了log4j和logback的不同。

兼容

SLF4J只是一个外观,这意味着它不提供完整的日志记录解决方案。使用SLF4J无法执行配置appender或设置日志记录级别等操作。因此一般情况下,slf4j和log4j,logback一起使用,以达到最大兼容,同时切换日志系统更加简便。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。