common logging是什么

2023-03-21 00:00 25次浏览 攻略
  • logback日志组件:logback当前分成三个模块,logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块,logback-classic是log4j的一个 改良版本。此外logback-classic完整实现slf4j API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

  • log4j2日志组件:log4j2是log4j1的升级版,相比log4j1有很大的改进,并且提供了很多在logback中已达到的改进和修复了logback中的一些内在bug,性能上有了很大的提升;依赖log4j-core-xx.jar和log4j-a,其配置文件只能采用.xml, .json或者 .jsn。在默认情况下,系统选择configuration文件的优先级如下:(classpath为scr文件夹)

    classpath下名为 log4j- 或者log4j-文件

    classpath下名为 log4j2-

    classpath下名为 log4j.json 或者log4j.jsn文件

    classpath下名为 log4j2.xml

    log4j2官网上有很详细的的性能测试对比()

    接口级日志组件:

  • commons-logging:是一个日志接口,可动态的绑定底层日志组件:

    使用Commons-logging的LogFactory获取日志处理类时:

    1) 首先,寻找org.a 属性配置, 系统环境变量。

    2) 否则,利用JDK1.3 开始提供的service 发现机制,会扫描classpah 下的META-INF/services/org.a文件,若找到则装载里面的配置,使用里面的配置。

    3) 否则,从Classpath 里寻找common ,找到则根据里面的配置加载。

    4) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;

    5) 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);

    6) 否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog

  • slf4j(simple logging facade for java):不同于common logging,slf是静态绑定,SLF4J 会在编译时会绑定import org.; 该类里面实现对具体日志方案的绑定接入。任何一种基于slf4j 的实现都要有一个这个类。

    注意:如果有任意两个实现slf4j 的包同时出现,那么就可能出现问题。

    org.: 提供对 log4j 的一种适配实现。

    org.: 是一种 simple 实现,会将 log 直接打到控制台。

    你可能会发现日志不见了、或都打到控制台了,原因是这两个jar 包里都有各自的 org. ,编译时候绑定的是哪个是不确定的。

  • 日志组件之间的桥接

    应用代码中使用slf4j接口,接入具体实现的方法

    应用代码中使用别的日志接口,转成slf4j的方法

    相关推荐