commons-logging,log4j,logback,slf4j之间的关系详解

commons-logging,log4j,logback,slf4j之间的关系详解

2018年05月04日 10:25:58 茅坤宝骏氹 阅读数:514

转载自 commons-logging,log4j,logback,slf4j之间的关系详解

 

commons-logging

 

是apache最早提供的日志的门面接口。它的主要作用是提供一个日志门面,使用者可以使用不同的日志实现。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。common-logging内部有一个Simple logger的简单实现,但是功能很弱。

 

官网:https://commons.apache.org/proper/commons-logging/

 

slf4j

 

全称:Simple Logging Facade for Java 

 

官网:https://www.slf4j.org/

 

The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time.

 

从官网的描述看,slf4j只是一种日志的门面和日志抽象框架,而java.util.logging,log4j,logback都是slf4j抽象框架的具体实现,只要调用slf4j的API就可以集成任何的实现框架在一起。

 

commons-logging,log4j,logback,slf4j之间的关系详解_第1张图片

 

logging

 

Java内部自带的日志工具,java.util包下。

 

commons-logging,log4j,logback,slf4j之间的关系详解_第2张图片

 

log4j

 

Apache下的一个开源日志框架,也是目前应用最广的一个日志框架。

 

官网:https://logging.apache.org/log4j/2.x/

 

logback

 

logback是slf4j的原生实现框架,同样是log4j同一个人之手,但拥有比log4j更多的优点和更多的特性,用来代替log4j。

 

官网:https://logback.qos.ch/

 

为什么要选择logback作为目前的日志框架可参考下面链接

 

英文:https://logback.qos.ch/reasonsToSwitch.html

中文:http://www.oschina.net/translate/reasons-to-prefer-logbak-over-log4j

 

更快的执行速度

基于我们先前在log4j上的工作,logback 重写了内部的实现,在某些特定的场景上面,甚至可以比之前的速度快上10倍。在保证logback的组件更加快速的同时,同时所需的内存更加少。

 

为什么要推荐logback作为首推的日志框架,仅看上面这一点,就觉得logback的强悍和优秀!

 

commons-logging,log4j,logback,slf4j之间的关系详解_第3张图片

 

总结

 

1、commons-loggin,slf4j只是一种日志抽象门面,不是具体的日志框架。

2、log4j,logback是具体的日志框架。

3、一般首选使用slf4j+logback,或者slf4j+log4j,commons-logging+log4j。

你可能感兴趣的:(编码安全)