Recently, when I was using the commons logging 1.0.4 and log4j 1.2.13, I found the log level TRACE is replaced with DEBUG. Then I trace into the codes, I found the Apache commons logging has the TRACE level earlier than log4j. So when it process the trace level, it will send the TRACE message to log4j with DEBUG level. Please update to the latest packages for both commons loggin and log4j. Please see the relative codes.
Please see the codes in Log4JLogger.java in version commons loggin 1.0.4
public void trace(Object message) {
if(is12) {
getLogger().log(FQCN, (Priority) Level.DEBUG, message, null );
} else {
getLogger().log(FQCN, Level.DEBUG, message, null );
}
}
Please see the codes in Log4JLogger.java in version commons loggin 1.1
static {
if (!Priority.class.isAssignableFrom(Level.class)) {
// nope, this is log4j 1.3, so force an ExceptionInInitializerError
throw new InstantiationError("Log4J 1.2 not available");
}
// Releases of log4j1.2 >= 1.2.12 have Priority.TRACE available, earlier
// versions do not. If TRACE is not available, then we have to map
// calls to Log.trace(...) onto the DEBUG level.
try {
traceLevel = (Priority) Level.class.getDeclaredField("TRACE").get(null);
} catch(Exception ex) {
// ok, trace not available
traceLevel = Priority.DEBUG;
}
}
public void trace(Object message, Throwable t) {
if(is12) {
getLogger().log(FQCN, (Priority) Level.DEBUG, message, t );
} else {
getLogger().log(FQCN, Level.DEBUG, message, t );
}
}
分享到:
相关推荐
Apache Log4j 2.3 和 Commons Logging 1.2 是两个在Java Web开发中广泛使用的日志处理库。这两个库对于记录应用程序的运行时信息、调试错误和监控系统状态至关重要。 **Apache Log4j 2.3** Log4j 是 Apache 组织...
这篇博客"Apache Commons Logging整合Log4j简单例子"显然会引导我们如何将ACL与Log4j集成,以便在我们的Java应用中使用Log4j作为日志记录器。Log4j是一款功能强大的日志框架,提供灵活的日志配置和多种输出选项,如...
《Commons-Logging + Log4j 入门指南》 在Java编程中,日志记录是必不可少的一部分,它有助于调试、性能分析以及故障排查。Apache Commons Logging和Log4j是两个广泛使用的日志框架,本指南将深入讲解如何将它们...
标题中的“commons-logging”和“Log4j”是两个在Java编程中广泛使用的日志处理框架。它们在日志管理领域中各自扮演着不同的角色,而它们之间的关系则涉及到日志实现的抽象与具体实现的层次问题。 首先,让我们了解...
"log4j.jar" 和 "commons-logging.jar" 是两个非常著名的Java日志库,它们在Java日志处理中扮演着核心角色。 **log4j.jar** 是Apache软件基金会开发的一个开源日志框架,它为Java应用程序提供了灵活的日志记录解决...
Log4j和commons-logging是两个常见的日志框架,它们之间存在紧密的关系。本文将深入探讨这两个组件,以及它们在Java日志系统中的作用。 首先,Log4j是由Apache组织开发的一个强大的日志处理库,它提供了丰富的日志...
"Java log4j commons文件"主要涉及两个关键组件:log4j和Apache Commons Logging。 首先,log4j是Apache软件基金会的一个项目,它提供了一个灵活的日志框架,用于在Java应用程序中生成日志。log4j的核心概念包括...
此版本包含了log4j-1.2.17.jar主库文件,以及一个依赖包commons-logging-1.2.jar,这两个组件是Log4j正常运行所必需的。 **一、Log4j核心组件** 1. **log4j-1.2.17.jar**: 这是Log4j的主要库文件,包含了所有Log4j...
- `commons-logging-1.0.4.jar`: 这是Apache Commons Logging库,它是Java日志API的一个抽象层,可以透明地支持多种日志框架,包括Log4j。在某些情况下,为了兼容性或减少依赖,开发者会使用这个库来间接调用Log4j。...
Log4j和Commons Logging是两个非常流行且实用的日志框架,广泛应用于各种Java应用程序。 **Log4j** 是Apache软件基金会的一个开源项目,它为Java程序员提供了一种强大的日志API。Log4j 1.2.14是该框架的一个较旧...
#### 四、log4j的核心组件 log4j的核心组件主要包括**Loggers(记录器)**、**Appenders(输出源)**和**Layouts(布局)**。 1. **Loggers (记录器)**:负责生成日志信息,并决定是否发送日志信息到Appenders。记录器...
### Log4j与Commons Logging:深入理解与实践 #### 引言 在软件开发过程中,日志记录是一项至关重要的任务,它不仅帮助开发者在开发阶段调试代码,也在生产环境中帮助运维人员监控系统状态,及时发现并解决问题。...
1. **移除或替换旧的日志实现**:如果项目中已经存在commons-logging的实现,如log4j,需要将其移除或者替换为SLF4J的绑定。 2. **添加桥接器**:引入`slf4j-jcl`(Jakarta Commons Logging桥接器)的jar文件,这会...
"commons-logging.jar" 和 "log4j.jar" 是两个广泛使用的Java日志框架,它们在Java应用开发中扮演着至关重要的角色。 **commons-logging.jar** 是Apache Commons Logging库,它提供了一个统一的日志接口,允许...
`commons-logging`会自动检测并选择可用的日志实现,优先级通常是:已配置的`commons-logging.properties`、系统环境变量`org.apache.commons.logging.Log`、`log4j`库、JDK内置日志、最后是`commons-logging`自带的...
Log4j和Commons Logging是两个非常流行且实用的日志记录库,它们各自拥有独特的功能和优势,而在某些情况下,它们可以协同工作,提供更灵活的日志解决方案。 首先,Log4j是由Apache软件基金会开发的一个开源日志...
在标题“spring jar 包 _ log4j-1.2.17.jar_commons-logging.jar”中,提到了两个重要的库文件:log4j-1.2.17.jar和commons-logging.jar,它们都是Spring框架常用的日志处理工具。现在,我们将深入探讨这两个库以及...
log4j-1.2.14.jar log4j-core-2.1.jar log4j-api-2.1.jar commons-logging-1.2.jar commons-logging-1.1.1.jar commons-logging-1.0.4.jar
#### 四、使用Log4j ##### 4.1 概述 Log4j是另一个非常流行的Java日志框架,由Apache基金会维护。它比JCL更加强大,支持更多的特性,比如多级日志记录、动态日志文件配置等。Log4j的核心优势在于其灵活性和强大的...