java - 设置 log4j 日志级别

标签 java logging 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 - Short introduction to log4j 中查看更多信息在默认初始化过程部分。

以编程方式修改关卡

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

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

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

关于java - 设置 log4j 日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10644687/

相关文章:

java - 事件发生时重新加载 Log4j.xml 文件配置

java - org.apache.http.wire DEBUG 日志不能被静音

java - 如何在 Embedded JDK compact 中使用 log4j 1/2/3

tomcat:我们如何在tomcat日志中记录用户名?

docker - 如何为 docker 容器的日志着色

java - Java 中确定列表/数组是否实际上是重复的较小数组的好方法

java - 如何在 Java 中定义运算符对类的作用

java - 令人困惑的日志错误 TimeBasedArchiveRemover$ArhiveRemoverRunnable

java - 无法使用 Facebook 的 API、使用 MVC 和 Java 发布消息

java - 上下文菜单显示正确的数据,但 ListView 不显示