java世界里的log有多种实现,常用的有log4j和jdk1.4后自带的java.util.logging。
好事的apache弄了个common-logging项目隔离了log4j和logging以及其它的log实现的差异。
这样开源项目库里统一采用common-logging,就可以自行决定在自己的应用中采用何种实现,并跟所依赖的jar包统一起来。
据common-logging的官方文档,决定实现方式的策略如下:
1.首先查找org.apache.commons.logging.Log属性,该属性可以在java代码中设置,更常见的是在classpath下的common-logging.properties文件中进行设置
2.在系统属性中查找org.apache.commons.logging.Log
3.如果类路径中有log4j的jar包,则采用log4j实现
4.如果jdk版本为1.4,采用Jdk14Logger
5.采用common-logging提供的SimpleLog
以上前一步若满足,则以该步骤的结果为准,后面的步骤均不执行。
用maven运行mvn test时,发现我的debug信息都打不出来,只能打出error信息,而且格式怪模怪样的。
检查了我的log4j的log4j.properties里的配置的priority为debug。
以为是maven搞鬼了,打开eclipse,运行test,问题照旧。
移除log4j.properties,现象一样,表明我的log4j.properties未生效。
怀疑我的log实现不是log4j,加入监视信息,打出我的log
Log log = LogFactory.getLog(HyperlinkHandler.class);
System.out.println("log = " + log);
结果确实为org.apache.commons.logging.impl.Log4jLogger。
肯定是依赖的jar包中搞了鬼,祭出了屡试不爽的二分法,一一排查可疑的jar包,终于在该死的jxls-core-0.9.5.jar中发现了log4j.xml,该配置的默认priority为warn:
<root>
<level value="WARN"/>
<appender-ref ref="CONSOLE"/>
</root>
该配置优先于我的log4j.properties,使可怜的它失去了效果。
分享到:
- 2007-10-19 14:29
- 浏览 5122
- 评论(3)
- 论坛回复 / 浏览 (3 / 8442)
- 查看更多
相关推荐
在实际应用中,将`log4j.jar`添加到项目的类路径中,并根据项目需求定制`log4j.properties`,即可实现有效的日志管理。这不仅有助于问题排查,也有利于系统维护和性能优化,因为过多的日志可能会占用大量磁盘空间,...
本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...
- **引入依赖**: 首先需要添加Log4j的jar包,如`log4j-1.2.17.jar`到项目类路径中。 - **获取Logger**: 通过`Logger.getLogger(Class)`获取指定类的日志记录器。 - **日志方法调用**: 使用`debug()`, `info()`, `...
这表明,除了Log4j的主要库之外,这个压缩包可能还包含了Log4j依赖的其他第三方库,这些库可能是为了实现特定功能或者与其他日志系统兼容而引入的。 在压缩包子文件的文件名称列表中,我们看到了两个文件:0.txt和...
描述中提到的“如何读取jar包外的log4j.properties”,这是Java日志框架Log4j的一个常见需求。Log4j是一个强大的日志处理库,它允许开发者通过配置文件(如log4j.properties或log4j.xml)来定制日志记录级别、输出...
此版本包含了log4j-1.2.17.jar主库文件,以及一个依赖包commons-logging-1.2.jar,这两个组件是Log4j正常运行所必需的。 **一、Log4j核心组件** 1. **log4j-1.2.17.jar**: 这是Log4j的主要库文件,包含了所有Log4j...
1. 在应用程序中使用 Log4j,需要将 Log4j 库文件(log4j-*.jar)添加到 CLASSPATH 变量中。 2. 新建一个配置文件 log4j.properties,放于 bin 文件下。 二、log4j.properties 配置文件 log4j.properties 配置文件...
总的来说,Log4j是一个强大且灵活的日志工具,通过`log4j-1.2.9.jar`和`log4j.properties`这两个文件,我们可以轻松地在Java项目中实现定制化的日志记录,从而提升开发效率和问题排查能力。虽然Log4j 1.x已经较为...
log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn". 系统选择配置文件的优先级(从先到后)如下: (1).classpath下的名为log4j2-test.json...
本篇将详细介绍Log4j 1.2.11版本以及其核心组件——`log4j.properties`配置文件。 **一、Log4j简介** Log4j是基于组件的日志框架,它提供了一种灵活的方式来记录应用程序中的事件。这些事件可以是错误、警告、调试...
log4j.properties ,commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如...
在给定的标题和描述中提到的"log4j-1.2.16.jar"和"slf4j-api-1.6.1.jar"都是Java日志框架中的关键组件,而"转换包"则是为了实现这两个框架之间的兼容性。接下来,我们将深入探讨这些组件以及如何结合使用。 **Log4j...
本文将详细介绍Log4j的使用方法以及配置文件`log4j.properties`的设置。 1. **Logger** Logger是日志信息的源头,它是Log4j中最基本的类。通过创建Logger实例,你可以为不同的类或模块分配不同的日志级别,如DEBUG...
### Log4j.properties配置详解 #### 一、Log4j简介与配置流程 Log4j是Apache的一个开源项目,用于实现日志记录功能。通过合理的配置可以极大地提高系统的可维护性和可扩展性,并且便于问题定位。本文将详细介绍`...
2. **配置灵活性**:通过配置文件(通常为log4j.properties或log4j.xml),开发者可以灵活控制日志的级别(DEBUG, INFO, WARN, ERROR, FATAL)以及输出目的地(控制台、文件、数据库等)。 3. **多种Appender**:...
这个压缩包"Log4j及其配置.rar"包含了Log4j的jar包(log4j-1.2.15.jar)以及相关的配置文档,旨在帮助开发者理解和使用Log4j。 一、Log4j介绍 Log4j是Apache软件基金会的一个开源项目,最初由Ceki Gülcü创建。它...
lo4j简单项目(包括commons-discovery-0.2.jar, commons-logging.jar, log4j-1.2.8.jar三个jar包和log4j.properties,以及测试类)
`log4j-1.2.17.jar` 是Log4j 1.2.x系列的版本,尽管Log4j 2.x已经发布,但很多老项目仍然依赖于1.2.x版本。它的API和实现略有不同,如果你的项目需要兼容旧版本,这个JAR文件是必不可少的。 `commons-logging-1.1.1...
3. **IDEA与log4j**: IntelliJ IDEA(简称IDEA)是一款流行的Java集成开发环境,它支持将log4j集成到项目中,通过配置pom.xml或build.gradle文件添加依赖,或者手动将log4j.jar添加到项目的类路径下,以便在IDEA中...
Log4j是一个广泛使用的Java日志框架,由...解压"Log4j jar包.rar",将JAR文件添加到项目的类路径中,然后按照需求编写配置文件,即可开始利用Log4j进行日志记录。同时,持续关注官方更新,以确保使用的版本是最安全的。