设置log4j日志级别


问题内容

我目前正在使用log4j的项目中。我正在运行一个测试用例(junit),并希望将日志级别设置为跟踪,以便我可以查看所有值是否正确。在项目中使用日志记录的类包含如下一行:

private static final Log LOG = LogFactory.getLog(MatchTaskTest.class);

并使用类似这样的命令进行实际调试

LOG.trace("value");

我以前从未使用过log4j,有人知道我该如何仅为测试用例更改日志级别,最好仅通过在Eclipse的运行配置对话框中定义一个参数即可。


问题答案:

使用另一个配置文件

也许您可以指向另一个配置文件。

java -Dlog4j.configuration=config file yourApp

哪里:

  • config,即配置文件,例如log4j.propertieslog4j.xml
  • file,日志文件,例如 myApp.log
  • yourApp,您的应用,例如 MyAppGUI

或者你可以使用一个类

java -Dlog4j.configurationClass=config class yourApp

哪里:

  • config,即配置文件,例如log4j.propertieslog4j.xml
  • class,任何自定义的初始化类(如LogManager)都应实现org.apache.log4j.spi.Configurator
  • yourApp,您的应用,例如 MyAppGUI

你可以看到更多的Apache的log4j 1.2
-简短的介绍的log4j
默认初始化程序 部分。

以编程方式修改级别

此外,您还可以使用提供Logger类的方法public void setLevel(Level level),例如:

Logger.getRootLogger().setLevel(Level.TRACE);

由于只希望出于测试目的,因此可以使用它们。但是建议不要在客户端代码中使用,因为它们会覆盖硬编码中的默认配置参数。最好的方法是使用外部配置文件。