如何使用 Log4j 更改包的日志级别?

2022-08-31 16:27:22

我遇到了以下错误:

http://issues.apache.org/jira/browse/AXIS2-4363

它声明如下:

仅当 org.apache.axiom 的日志级别为 DEBUG 时,才会发生此错误,因此解决方法是将日志级别设置为 DEBUG >。

我的问题是我该怎么做?我一直在搜索我的目录以查找属性文件或其他东西,我一直在寻找是否可以在代码中设置某些内容,但我真的不知道我在做什么。我现在正在桌面上运行控制台应用程序,同时尝试使其正常工作。

更新1:我注意到我的Axis2目录在其根目录中有自己的log4j.properties文件。这是安全地忽略还是解决方案的一部分(或问题的一部分)?

更新 2:根级别 log4j.properties 文件未正确设置。现在它看起来像这样:

log4j.rootLogger=DEBUG, R 
log4j.logger.org.apache.axiom=WARN
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.MaxFileSize=10MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

但这显然是错误的,因为此代码返回“日志级别为空”:

System.out.println("Log level is " + logger.getLevel());

现在,我正在使用代码中设置日志级别

Logger logger = Logger.getLogger("org.apache.axiom");
logger.setLevel(Level.WARN);

答案 1

您使用的是哪个应用服务器?每个都将其日志记录配置放在不同的地方,尽管现在大多数人使用Commons-Logging作为Log4J或java.util.logging的包装器。

本文档以 Tomcat 为例,介绍了使用任一选项配置日志记录的选项。在任何一种情况下,您都需要查找或创建一个配置文件,该文件定义每个包的日志级别,并且日志记录系统将输出日志信息(通常是控制台、文件或数据库)的每个位置。

在log4j的情况下,这将是log4j.properties文件,如果您按照上面链接中的说明操作,您的文件将开始如下所示:

log4j.rootLogger=DEBUG, R 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
log4j.appender.R.MaxFileSize=10MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

最简单的方法是更改该行:

log4j.rootLogger=DEBUG, R

对类似的东西:

log4j.rootLogger=WARN, R

但是,如果您仍然希望自己的类具有自己的 DEBUG 级别输出,请添加一行,内容如下:

log4j.category.com.mypackage=DEBUG

阅读Log4JCommons-Logging将帮助您了解所有这些。


答案 2

我今天遇到了完全相同的问题,瑞安。

在我的 src(或您的根)目录中,我的 log4j.properties 文件现在具有以下添加

# https://issues.apache.org/jira/browse/AXIS2-4363
log4j.category.org.apache.axiom=WARN

谢谢你关于如何做到这一点的提醒,本杰明。


推荐