我目前正在做一个使用 log4j 的项目。 我正在运行一个测试用例(junit)并想将日志级别设置为跟踪,以便我可以查看所有值是否正确。项目中使用日志的类包含如下一行:
private static final Log LOG = LogFactory.getLog(MatchTaskTest.class);
并使用类似这样的方式进行实际调试
LOG.trace("value");
我以前从未使用过 log4j,有人知道我如何仅为测试用例更改日志级别,最好只需在 eclipse 的运行配置对话框中定义一个参数。
最佳答案
使用另一个配置文件
也许你可以指向另一个配置文件。
java -Dlog4j.configuration=config file yourApp
地点:
config
,你的配置文件,例如log4j.properties
或log4j.xml
.file
,日志文件,例如myApp.log
yourApp
,你的应用,例如MyAppGUI
或者你可以使用一个类
java -Dlog4j.configurationClass=config class yourApp
地点:
config
,你的配置文件,例如log4j.properties
或log4j.xml
.class
,任何自定义的初始化类,如LogManager
,都应该实现org.apache.log4j.spi.Configurator
yourApp
,你的应用,例如MyAppGUI
您可以在 Apache log4j 1.2 - Short introduction to log4j 中查看更多信息在默认初始化过程部分。
以编程方式修改关卡
此外,您还可以使用提供 Logger
的方法。类,如 public void setLevel(Level level)
,例如:
Logger.getRootLogger().setLevel(Level.TRACE);
由于您只想用于测试目的,您可以使用它们。但建议不要在客户端代码中使用,因为它们会覆盖硬编码中的默认配置参数。最好的方法是使用外部配置文件。
关于java - 设置 log4j 日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644687/