设置 log4j 日志级别

2022-09-01 15:47:19

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

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

并使用像这样的方式进行实际调试

LOG.trace("value");

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


答案 1

使用另一个配置文件

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

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,任何自定义的初始化类,如 ,都应该实现 org.apache.log4j.spi.ConfiguratorLogManager
  • yourApp,您的应用程序,例如MyAppGUI

您可以在 Apache log4j 1.2 - 默认初始化过程部分的 log4j 简短介绍中查看更多内容。

以编程方式修改关卡

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

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

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


答案 2

在你的 junit 类中 put:

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

在执行测试方法之前的某个地方。它将根记录器的阈值级别设置为 TRACE。


推荐