Apache commons logging自动查找当前实现Log顺序
1、 首先在classpath下寻找自己的配置文件commons-logging.properties,如果找到,则使用其中定义的Log实现类;
2、 如果找不到commons-logging.properties文件,则在查找是否已定义系统环境变量org.apache.commons.logging.Log,找到则使用其定义的Log实现类;建立一个叫 :CATALINA_OPTS 的环境变量,给他的值 : - Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog - Dorg.apache.commons.logging.simplelog.defaultlog = warn
3、 否则,查看classpath中是否有Log4j的包,如果发现,则自动使用Log4j作为日志实现类;
4、 否则,使用JDK自身的日志实现类(JDK1.4以后才有日志实现类);
5、否则,使用commons-logging自己提供的一个简单的日志实现类SimpleLog。
所以,如果要实现自己的日志系统,最简单的方法是在classpath下放 commons-logging.properties文件,内容为:
org.apache.commons.logging.Log=com.hundsun.test.mylogger.MyLog
一行就可以了。
Slf4j则使用的静态绑定技术,每个具体的Log实现都由具体包里的StaticLoggerBinder类来创建。所以具体Log的实现包只能放一个,否则会冲突。
要实现这个只需要在打好包的slf4j中把最开始的 StaticLoggerBinder类删除掉就可以了。挺有技巧的,虽然很简单。
分享到:
相关推荐
* 寻找当前 factory 中名叫 org.apache.commons.logging.Log 配置属性的值 * 寻找系统中属性中名叫 org.apache.commons.logging.Log 的值 * 如果应用程序的 classpath 中有 log4j,则使用相关的包装(wrapper)类(Log...
Apache Commons Logging会根据配置自动找到合适的日志实现,如找到Log4j的配置则使用Log4j,如果没有,则可能回退到使用JUL。 在使用Apache Commons Logging时,通常需要进行以下步骤: 1. 添加对应的JAR文件到项目...
Commons Logging 是 Apache 的一个通用日志接口,它提供了一个简单的API,使得开发者能够在不关心具体日志实现的情况下,切换不同的日志框架,如Log4j、Java内置的日志系统等。Commons Logging 1.2 版本的特点有: ...
Apache Commons Logging(ACL)是Java中一个轻量级的日志API,它允许开发者在不同的日志实现之间进行切换,而无需修改代码。这个API的主要目的是为了统一不同库的日志输出,使得应用开发者可以选择最适合他们项目的...
javax.servlet.jar and org.apache.commons.logging.Log.jar javax.servlet.jar and org.apache.commons.logging.Log.jar
这是因为Commons Logging自身并不提供任何实际的日志实现,而是作为一个中介,根据配置查找并使用实际的日志框架,如Log4j。 在应用中,我们首先需要设置Log4j的配置文件(通常是"log4j.properties"或"log4j.xml")...
在标题"commons-logging-1.2_commonslogging_"中提到的"commons-logging-1.2.jar"就是这个库的1.2版本,它是Spring框架中常用的一个依赖,用于处理日志记录。 Spring框架广泛使用Commons Logging作为其默认的日志...
Apache Commons Logging 是一个Java日志库,它提供了一个接口,允许开发者使用多种不同的日志框架,如Log4j、Java内置的日志API(java.util.logging)或其他第三方日志实现。`org.apache.commons.logging-sources-...
Apache Commons Logging 提供了一个API,开发人员可以使用这个API编写日志语句,然后在运行时通过配置来决定实际的日志实现,如Log4j、java.util.logging(也称为JUL)或简单的控制台日志。 标题中的"apache-...
Commons Logging 是 Apache 组织提供的一款轻量级的日志记录工具库,它的主要目标是为 Java 开发者提供一个简单的接口来使用各种日志框架,如 Log4j、Java Util Logging(JUL)或者 Simple Logging Facade for Java...
在这个例子中,`LogFactory.getLog(MyClass.class)`会自动查找并返回一个合适的日志实现的实例,具体取决于系统配置。如果未指定任何日志实现,Commons Logging通常会默认使用Java内置的日志系统。 总的来说,...
Apache Commons Logging 是一个Java日志框架的抽象层,它允许开发者在不同的日志实现之间进行切换,而无需修改代码。这个"commons-logging-1.2-bin.zip"压缩包包含了Apache Commons Logging库的1.2版本,这是一个...
在实际应用中,Commons Logging会根据系统环境自动查找并加载合适的日志实现。如果找不到默认的日志实现,它会回退到一个简单的内存日志系统,确保即使在没有其他日志库的情况下,仍能进行基本的日志记录。 总结来...
Apache Commons Logging 是一个Java日志库,它提供了一个API,允许开发者在他们的应用程序中使用不同的日志框架,而无需直接依赖具体的实现。这个库的主要目标是解决Java日志的分散问题,因为不同的开源项目可能会...
1. **API JAR**:commons-logging-1.1.1.jar,这是Commons Logging的主API,提供了用于日志记录的基本类和接口,如`org.apache.commons.logging.Log`,`org.apache.commons.logging.LogFactory`等。 2. **源码**:...
在实际使用中,Commons Logging提供了一系列的Logger接口,如`org.apache.commons.logging.Log`和`org.apache.commons.logging.LogFactory`。通过`LogFactory.getLog(Class)`方法,可以获取与当前类关联的Logger实例...
通过这种方式,Commons-Logging会自动找到Log4j作为底层实现,并按照你在`log4j.properties`中的配置进行日志输出。 在实际开发中,你还可以根据需求调整Log4j的配置,比如添加不同的appender(如控制台输出、邮件...
Apache Commons Logging,简称Commons Log,是Apache软件基金会的一个开源项目,提供了一种统一的日志接口,使得Java开发者能够在不关心具体日志实现的情况下,方便地切换不同的日志框架,如Log4j、java.util....