org.apache.commons.logging.LogFactory内部装载日志系统的顺序:
在它的getFactory()函数中:
1.首先检查系统属性org.apache.commons.logging.LogFactory是否定义,如果定义了,使用这里定义的值
2.如果没有定义,使用JDK1.3之后的发现系统,在META-INF/services目录下找这个service: META-INF/services/org.apache.commons.logging.LogFactory是否存在,存在的话使用这个值
3.从commons-logging.properties查找这个属性:org.apache.commons.logging.LogFactory,如果存在,使用之
4.使用默认的实现:默认的实现中,会依次查找下面几个实现是否存在
org.apache.commons.logging.impl.Log4JLogger
"org.apache.commons.logging.impl.Jdk14Logger",
"org.apache.commons.logging.impl.Jdk13LumberjackLogger",
"org.apache.commons.logging.impl.SimpleLog"
"org.apache.commons.logging.impl.Jdk13LumberjackLogger",
"org.apache.commons.logging.impl.SimpleLog"
,如果存在 ,使用最先找到的那个实现
如果使用LOG4J,commons-logging包中有一个org.apache.commons.logging.impl.Log4JLogger类,这里有一个成员是org.apache.log4j.Logger也就相当于直接使用log4j本身的实现.org.apache.commons.logging.impl.Log4JLogger类是一个典型的Adapter!
这是从源代码中看到的加载顺序,似乎跟官网的doc讲得不一致!囧!
本文详细介绍了org.apache.commons.logging.LogFactory内部装载日志系统的顺序。主要包括:系统属性检查、JDK1.3后的发现系统、commons-logging.properties文件配置及默认实现的选择等步骤。
8004

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



