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

 

 

时间: 2024-09-20 05:58:05

commons-logging和slf4j都是日志的接口的相关文章

深入源码之Commons Logging

自从七月份去走川藏后,已经好几个月没有更新博客了.其实八月底从拉萨回来后一直在Spring的代码,也想写几篇关于Spring源码的解读,可惜Spring实在是太复杂了,花了我一个多月的时间,框架大体流程是有头绪了,但是具体实现和各个模块的具体细节还都不是很清楚,迟迟不敢动笔.其实原本我不想回到Logging这一块,我知道光看完Log4J的代码还不够,也感觉Log在系统中其实占据了蛮重要的位置(虽然很多人都没有意识到),不过一般Log框架使用简单,遇到问题也比较少,即使看完源码对实际工作也帮助不大

Commons Logging存在的ClassLoader问题详解

在看Java Logging相关的框架.代码.资料的时候,一直有听说Commons Logging存在ClassLoader相关的问题,但是看它的实现代码(1.1.1版本),对ClassLoader做了非常详细的查找:用了Thread Context ClassLoader.System ClassLoader.以及LogFactoryImpl本身的ClassLoader,感觉上已经很全面了.上周末有幸找到一篇Ceki Gülcü写文章,详细介绍了Commons Logging中存在的Class

简化SLF4J和通用日志工具的区别

这就是为什么现在每个人都用SLF4J的原因:) 下面是如何追踪和更新你的SLF4J日志: 首先,查询slf4j绑定的类路径. 然后,确保只有一个这样的绑定. 最后,当你找到正在被使用的绑定:查阅它的配置特性. 另一方面-下面是如何追踪通用日志: 首先,你得找到日志绑定是如何实现. 检查commons-logging.properties 里的org.apache.commons.logging.log的属性是否设置,或通过应用里的Commons Logging API设置. 如果没有设置,检查路

SLF4J和Logback日志框架详解

SLF4J和Logback日志框架详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文讲述SLF4J和Logback日志框架.   SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现. LogBack在运行时使用JMX帮助修改日志配置,在生产状态下无需重启应用程序. SLF4J SLF4J是简单的日志外观模式框架,抽象了各种日志框架例如Logback.Log4j.Commons-logging和JDK自带的l

Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)

  Acknowledgments I would like to thank Jacob Kjome for reviewing early drafts of this document. His comments helped to clarify several important points. Jake also keeps reminding us on the log4j-dev mailing list that the child-parent delegation mode

日志那点事儿——slf4j源码剖析

前言: 说到日志,大多人都没空去研究,顶多知道用logger.info或者warn打打消息.那么commons-logging,slf4j,logback,log4j,logging又是什么关系呢?其中一二,且听我娓娓道来. 手码不易,转载请注明_xingoo! 涉及到的内容:日志系统的关系.Slf4j下载.源文件jar包的使用.Slf4j源码分析.JVM类加载机制浅谈 首先八卦一下这个日志家族的成员,下面这张图虽然没有包含全部的内容,但是基本也涵盖了日志系统的基本内容,不管怎么说,先记住下面这

基于Spring+SpringMVC+MyBatis实现高并发秒杀APIM

基于Spring+SpringMVC+MyBatis实现高并发秒杀API 项目地址:https://github.com/DaleyChao/SecondKill 项目下载链接:https://github.com/DaleyChao/SecondKill/archive/master.zip 一.项目概述 一.为什么使用SSM框架 1.互联网公司常用框架 2.框架易于使用和轻量级 3.低代码倾入性 4.成熟的社区和用户群 二.相关技术 MySQL:1.表设计2.SQL技巧3.事务和行级锁 My

高性能的智能日志

[编者按]本文作者是 Archanaa Panda ,从 2000 以来一直在软件开发(构架.设计和编程)团队担任 Java / JavaEE 构架师,目前立志于做一个与时俱进的独立的顾问架构师.在本篇文章中,作者通过多个方面为生产环节的日志提供建议和指导,最后还介绍了一个高性能的智能日志技术,帮助大家构建高性能的智能日志框架.    1.摘要 当应用在生产过程中,日志通常处于开发周期的次要位置,但实际上高性能的日志可能成为开发团队的重要生命线.在此我们假设读者已熟悉了各种日志框架,如 Log4

Java日志管理的最佳实践

概述 对于现在的应用程序来说,日志的重要性是不言而喻的.很难想象没有任何日志记录功能的应用程序运行在生产环境中.日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息.状态信息.调试信息和执行时间信息等.在生产环境中,日志是查找问题来源的重要依据.应用程序运行时的产生的各种信息,都应该通过日志 API 来进行记录.很多开发人员习惯于使用 System.out.println.System.err.println 以及异常对象的 printStrackTrace 方法来输出相关信息.这些