1.apache commons Logging:Commons-loggin的目的是为“所有的Java日志实现”提供一个统一的接口,它自身的日志功能平常弱(只有一个简单的SimpleLog?),所以一般不会单独使用它;它的宗旨在于取消各种日志框架实现之间的差异,以统一的一致地接口API来操作日志。从而实现高度的日志系统抽象,你无需从新编码就可以切换不同的日志框架实现。
2.Log4j是commons Logging的一种实现
3.commons Logging寻找实现的过程:
1) 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类;
如org.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog
2) 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类;如:
System.getProperties().setProperty(LogFactory.class.getName(),
Log4jFactory.class.getName());
3) 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;
4) 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);
5) 否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog;
本文详细介绍了Apache Commons Logging框架的目的、作用及如何在类路径下寻找实现过程,同时阐述了Log4j作为其实现之一的作用。通过解析配置文件、系统环境变量、类路径中的Log4j包、JDK自身日志实现到 Commons-Logging 自带的 SimpleLog 实现的查找流程,深入理解日志系统抽象与切换不同日志框架的灵活性。
3131

被折叠的 条评论
为什么被折叠?



