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;