zoukankan      html  css  js  c++  java
  • commons-logging和slf4j都是日志的接口

    过上面的图,可以简单的理清关系!

      commons-logging和slf4j都是日志的接口,供用户使用,而没有提供实现!

      log4j,logback等等才是日志的真正实现。

      当我们调用接口时,接口的工厂会自动寻找恰当的实现,返回一个实现的实例给我服务。这些过程都是透明化的,用户不需要进行任何操作!

      这里有个小故事,当年Apache说服log4j以及其他的日志来按照commons-logging的标准编写,但是由于commons-logging的类加载有点问题,实现起来也不友好,因此log4j的作者就创作了slf4j,也因此而与commons-logging两分天下。至于到底使用哪个,由用户来决定吧。

      这样,slf4j出现了,它通过简单的实现就能找到符合自己接口的实现类,如果不是满足自己标准的日志,可以通过一些中间实现比如上面的slf4j-log4j12.jar来进行适配。

    提供有我们两个版本,linux下的tar.gz压缩包,和windows下的zip压缩包。

      下载zip文件后解压,可以找到提供给我们的使用工具包。一般来说,这种开源的项目会为我们提供两种jar包,就拿slf4j(有人叫他,撒拉风four接,很有意思的名字)slf4j.jar、slf4j-source.jar:


    这里slf4j-api-xxx.jar就是它的核心包,而slf4j-api-xxx-source.jar是它的源码包,里面包含了未编译的java文件。
    如果使用slf4j只是接口,如果使用Log4j来写日志,还需要slf4j-log4j12-xxx.jar、log4j-1.2.17.jar
    示例:
    slf4j-api-1.7.7.jar、slf4j-log4j12-1.7.7.jar、log4j-1.2.17.jar

    log4j.properties文件要放在项目根目录下,可通过Thread.currentThread().getContextClassLoader().getResource("").getPath()的值来查看
    或查看Eclipse中的配置,下图中为src目录下

    http://www.cnblogs.com/xing901022/p/4149524.html#commentform

     http://www.cnblogs.com/softidea/p/4152451.html

     

  • 相关阅读:
    CodeForces Round #678(Div2) E.Complicated Computations Mex性质,权值线段树
    P6075 子集选取 思维
    HDU-4747 Mex 线段树应用 Mex性质
    P1273 有线电视网 树形DP 树上背包
    P6786 GCDs & LCMs 数学推导
    [CTSC1997] 选课 树上背包
    Gym-101915K Poor Ramzi 区间DP
    [MdOI R2] Odyssey 拓扑排序上DP
    CodeForces Div3.F
    二分-B
  • 原文地址:https://www.cnblogs.com/softidea/p/4150039.html
Copyright © 2011-2022 走看看