1. java commons-logging:是一个日志接口,允许程序开发人员使用不同的具体日志实现工具,包括Log4J, Avalon LogKit, and JDK LOG等.JCL有两个基本的抽象类:Log(基本记录器)和LogFactory(负责创建Log实例)。当commons-logging.jar被加入
到CLASSPATH之后,默认的LogFactory是按照下列的步骤去发现并决定那个日志工具将被使用
- 寻找当前factory中名叫org.apache.commons.logging.Log配置属性的值
- 寻找系统中属性中名叫org.apache.commons.logging.Log的值
- 如果应用程序的classpath中有log4j,则使用相关的包装(wrapper)类(Log4JLogger)
- 如果应用程序运行在jdk1.4的系统中,使用相关的包装类(Jdk14Logger)
- 使用简易日志包装类(SimpleLog)
2. SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部
署其应用时使用其所希望的日志系统。等同于JCL,都是facade层次的东东。
相对JCL,优点如下:
- 超超超低依赖性
- 透明切换不同是日志实现方式
- 编译器绑定底层实现的方式,不会有classloader问题
- 性能更佳
- 已经Hibernate、Jetty、Spring-OSGi、Tapestry等项目中使用
- 完善又免费的文档
slf4j 常用jar包:
slf4j-log4j12-1.6.0.jar
3. 一般facade都是结合Log4J使用。but,SLF4J的作者就是Log4j的作者,他正在开发来
代替log4j,logback有更高的性能.who care,日志只是事后弥补的东西,会用即可,无需太深入。
Logback 替代 Log4J 的十几个理由:Reasons to
prefer logback over log4j,说的大至是更快;好测试;与 SLF4J 关系紧;文档丰富;能自动加载配置文件;多个 JVM
写一个日志文件,或其他 I/O
错误时不影响程序执行;配置文件中加入条件控制;强大的日志过滤;更强的日志切分功能;自动压缩、删除日志文件;异常栈中更多的数据信息。
Logback
分为三个模块:logback-core,logback-classic,logback-access。logback-core
是核心;logback-classic 改善了 log4j,且自身实现了 SLF4J API,所以即使用 Logback
你仍然可以使用其他的日志实现,如原始的 Log4J,java.util.logging 等;logback-access
让你方便的访问日志信息,如通过 http 的方式。
还得提一点,Logback 能更好的放到 OSGI 环境中。好了,简单绍完了
Logback,就来看看具体怎么用它。
4. step by step
网上还有篇文章,记着待验证:
http://hi.baidu.com/hxzon/blog/item/2b549f25cd563e6a35a80f78.html