发布时间:2022-09-02 10:30
Java中日志框架种类繁多,我也是最近在学习mybatis过程中对日志的使用产生了困惑,所以这里个人做下总结,希望能帮助到和我有一样困惑的朋友,下面我们就开始吧!
Java中的第一个日志框架是apache提出来的log4j
,如下:
后来呢,sun公司认为自己作为java的开发主体,日志肯定是需要自己来给出方案的,为了打压log4j,于是在jdk4中制定了JULjava util logging
,在rt.jar
的java.util.logging包中,如下:
与此同时,又有一些其他的日志框架也被提了出来,比如simplelog,此时java日志体系如下图:
但是众多的毫无关系的日志框架,势必在我们的项目中造成混乱,比如项目中使用的是log4j,依赖的库A使用的是JUL,依赖的库B使用的是simplelog,这样一个项目中各种日志框架混杂,项目会越来越不好维护,越来越混乱,此时这个问题就亟需解决。这个时候,apache社区提出了commons-logging即JCL
的日志抽象来适配各种日志框架,此时java日志体系就变成下图:
之后呢,log4j的作者提出了一个对标JCL的日志抽象适配接口SLF4J
(simple logging facade for Java),不仅如此还直接开发一个基于SLF4J的日志框架实现logback
,与此同时呢,又继续维护并升级了log4j,形成了其升级版本log4j2
,此时Java日志体系变为下图红色框为本部分新介绍的
:
这个图也是目前java日志体系发展的现状了。