commons logging的getFactory()方法

getFactory()方法返回一个Factory

首先从系统属性获取factory的实现类名,没有则继续

String factoryClass = getSystemProperty(FACTORY_PROPERTY, null);
public static final String FACTORY_PROPERTY = "org.apache.commons.logging.LogFactory";

通过JDK1.3的Service Discovery机制 查找factory的实现类名,没有则继续

final InputStream is = getResourceAsStream(contextClassLoader, SERVICE_ID);
protected static final String SERVICE_ID =
        "META-INF/services/org.apache.commons.logging.LogFactory";

查找配置文件

commons-logging.properties

中的属性

org.apache.commons.logging.LogFactory

来查找factory的实现类名,没有则继续

Properties props = getConfigurationFile(contextClassLoader, FACTORY_PROPERTIES);
public static final String FACTORY_PROPERTIES = "commons-logging.properties";
String factoryClass = props.getProperty(FACTORY_PROPERTY);
public static final String FACTORY_PROPERTY = "org.apache.commons.logging.LogFactory";

最后如果以上3个都没找到,采用

org.apache.commons.logging.impl.LogFactoryImpl
factory = newFactory(FACTORY_DEFAULT, thisClassLoader, contextClassLoader);
public static final String FACTORY_DEFAULT = "org.apache.commons.logging.impl.LogFactoryImpl";
时间: 2024-11-08 14:15:06

commons logging的getFactory()方法的相关文章

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory解决方法

解决方法 第一种方法:导入commons-logging.jar包 第二种方法,如果用的是maven项目,则直接在pom.xml中加入commons-logging依赖包,如下: <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </depend

commons logging LogFactoryImpl的getInstance()方法

在缓存中的话直接拿来,没有的话进入newInstance方法, public Log getInstance(String name) throws LogConfigurationException { Log instance = (Log) instances.get(name); if (instance == null) { instance = newInstance(name); instances.put(name, instance); } return instance; }

日志组件系列:(2)commons logging和log4j实战

(1).下载组件,引入jar包 (2).配置 (3).使用API 1.下载组件,引入jar包 jar包 下载地址 log4j-1.2.17.jar http://logging.apache.org/log4j/1.2/ commons-logging-1.2.jar http://commons.apache.org/proper/commons-logging/download_logging.cgi 2.配置 在项目的src目录下添加log4j.properties文件,配置如下: log

Apache Commons logging简介和使用

本章节内容主要来自网络和整理. Apache Commons Logging,又叫做JakartaCommons Logging (JCL),他提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具.它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具.用户被假定已熟悉某种日志实现工具的更高级别的细节.JCL提供的接口,对其它一些日志工具,包括Log4J, Avalon LogKit, and JDK等,进行了

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

1.错误描述 2014-7-12 0:38:57 org.apache.catalina.core.ApplicationContext log 信息: No Spring WebApplicationInitializer types detected on classpath 2014-7-12 0:38:57 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending context initia

Exception in thread &quot;main&quot; java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

MyEclipse运行的时候报错,菜鸟不理解是什么意思,最后找了一些资料才知道是因为缺少commons-logging.jar包 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:66) at c

java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource解决方法

java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource解决方法 只需把这三个commons-pool.jar.commons-dbcp-1.2.2.jar和commons-collections-3.2.jar包加入到lib里即可解决.这三个包在你本地的tomcat下的lib里,直接buildpath导入就行了,不过有时导包不一定好使,是因为工程lib下的包跟tomcat下的包重复了,导致异常错误如: o

Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)

Acknowledgments I would like to thank Jacob Kjome for reviewing early drafts of this document. His comments helped to clarify several important points. Jake also keeps reminding us on the log4j-dev mailing list that the child-parent delegation model

struts2与struts1整合,java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

原因:我往项目的WEB-INF/lib中导入了struts2基本的包,还有struts1的core包,以及struts2-strut1-plugin的包,但是没有导入commons-loggin-1.3.1这个包,如下图 我打开commons-loggin-1.3.1这个包看了一下,果然找到了这个组件的class文件 看到这个错误的时候,我感觉就应该i啊是commons-logging这个包没有添加导致的,添加上就好了 struts2与struts1整合,java.lang.NoClassDef