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

Rya*_*ins 57 java logging axis2 log4j axiom

我遇到了以下错误:

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
Run Code Online (Sandbox Code Playgroud)

但这显然是错误的,因为此代码返回"Log level is null":

System.out.println("Log level is " + logger.getLevel());
Run Code Online (Sandbox Code Playgroud)

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

Logger logger = Logger.getLogger("org.apache.axiom");
logger.setLevel(Level.WARN);
Run Code Online (Sandbox Code Playgroud)

Ben*_*Cox 62

您使用的是哪个应用服务器?每个人都将其日志配置放在不同的位置,尽管现在大多数人使用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
Run Code Online (Sandbox Code Playgroud)

最简单的是改变这条线:

log4j.rootLogger=DEBUG, R
Run Code Online (Sandbox Code Playgroud)

对于这样的事情:

log4j.rootLogger=WARN, R
Run Code Online (Sandbox Code Playgroud)

但是如果您仍然希望自己的类中有自己的DEBUG级别输出,请添加一行说明:

log4j.category.com.mypackage=DEBUG
Run Code Online (Sandbox Code Playgroud)

阅读一下Log4JCommons-Logging将帮助您理解所有这些.

  • 使用logger在log4j中不推荐使用category (3认同)

ian*_*cho 9

我今天遇到了同样的问题,瑞安.

在我的src(或你的根目录)目录中,我的log4j.properties文件现在增加了以下内容

# https://issues.apache.org/jira/browse/AXIS2-4363
log4j.category.org.apache.axiom=WARN
Run Code Online (Sandbox Code Playgroud)

感谢Benjamin如何做到这一点.


msa*_*gel 6

这对我的工作:

log4j.logger.org.hibernate.type=trace
Run Code Online (Sandbox Code Playgroud)

也可以试试:

log4j.category.org.hibernate.type=trace
Run Code Online (Sandbox Code Playgroud)