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

  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

最新文章

  1. SSH使用详解
  2. APC注入(Ring3层)
  3. JAVA基础学习之流的简述及演示案例、用缓冲区方法buffer读写文件、File类对象的使用、Serializable标记接口(6)
  4. hdu 2203 亲和串
  5. Netty 4(一) zero copy
  6. WIndows7 多版本
  7. md5加密算法c语言版
  8. Python中模块之re的功能介绍
  9. Opencv(C++)实现邻近插值算法
  10. 【转】OS X Base System 上没有足够的空间来进行安装
  11. ES2018正则表达式更新
  12. django创建ORM模型、通过ORM模型操作单个表、ORM模型常用字段
  13. 学习笔记001之[Android开发视频教学].01_06_Android当中的常见控件
  14. YAML格式的语法
  15. Sql查询两个时间段有重叠的记录
  16. 洛谷.4512.[模板]多项式除法(NTT)
  17. CUBA-Platform将全面助力中国开发者
  18. Mysql Federated Server 示例
  19. jQuery Callback函数的用法
  20. 隐藏 google 地图 Logo 隐藏 百度 地图 Logo

热门文章

  1. Mybatis上路_06-使用Java自动生成[转]
  2. PL/SQL 基础编程
  3. Clementine 12.0 的使用(因为比较少用,项目中用到才开始接触写一下自己的使用方法)
  4. js颜色转换
  5. oracle 计算两个时间之间的月份差,相差几个星期,相差多少天
  6. HDU1257-最少拦截系统
  7. @Transactional失效的问题
  8. 堆排序(java实现)
  9. Tensorflow 神经网络
  10. 网上下载的“上下3D”和“左右3D”影片该如何播放?