org.apache.commons.logging
Commons-logging简介
Commons-logging是经典的通用日志框架,它提供了记录日志的一些通用的API,即提供了记录日志的接口。Commons-logging自己也有一个简单的记录日志实现。在其他具体实现框架都不存在的情况下,他将使用自己的简单日志实现。
Commons-Logging涉及的设计模式如下:
抽象工厂模式:
1、抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么时候被创建。
2、当一个产品族中的多个对象被设计成一起工作时,他能保证客户端始终只有使用同一个产品族中的对象。
3、增加新的具体工厂和产品族很方便,无需修改已有系统,符合“开闭原则”。
单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
适配器模式:
1、将目标类和适配者类解耦。
2、增加了类的透明性和复用性,将具体的实现封装在适配者类中,对于客户端来说是透明的,而且提高了适配者的复用性。
3、灵活性和扩展性都非常好,符合开闭原则。
代理模式
创建具有现有其他日志工具一样的API,通过Logging便可以调用外界提供的日志接口。
模式分析
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)
参考文献
[1] Java日志组件 commons-logging和log4j介绍.
http://blog.csdn.net/zws1987211/article/details/7347869.2012年03月13日
11:19:49.
[2] Apache Commons—logging使用实例.
http://blog.51cto.com/zhangjunhd/25135.zahngjunhd.2017年04月28日 16:14.
[3] Apache Commons Logging.
https://en.wikipedia.org/wiki/Apache_Commons_Logging.
[4] Java中的日志——Java.util.logging、log4j、commons-logging.
http://blog.csdn.net/luoweifu/article/details/46495045.2015年06月14日 22:04:28.
[5]Apache Commons-logging使用实例https://blog.csdn.net/u013099001/article/details/530827772016年11月08日
[6]Java日志框架(Commons-logging,SLF4j,Log4j,Logback) https://www.cnblogs.com/duhuo/p/7376710.html
[7]Commons Logging 学习笔记https://blog.csdn.net/oohailinoo/article/details/37418322009年01月09日