在 IDE 中进行开发时,跟踪和调试日志可能会有所帮助,但在构建过程中,我发现这些行非常令人不安,并且混淆了 maven 或其他构建工具打印的报告。
最好让 log4j 尊重像 -Dlog4j.rootLogger=OFF
1 这样的系统属性,以便与 maven 或不需要更改项目文件。
我知道我可以指定 -Dlog4j.configuration=alternateconfig.props
2 但我在这里询问是否有人找到了在构建期间禁用日志记录的更智能方法过程中人工干预最少。 IE。一些 java 类将 maven 检测为禁用 log4j 或其他智能解决方案的调用者。
有什么提示吗?
注意事项:
[1]:已经试过了,还是不行。
[2]:这很好,但它似乎不适用于 maven(也许肯定会跳过它)
最佳答案
正如 @artbristol
(对问题的评论)所解释的,这可以在surefire中进行配置。
在 pom.xml 中可以这样实现:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<forkMode>always</forkMode>
<systemPropertyVariables>
<log4j.configuration>file:${basedir}/etc/log4j-silent.properties</log4j.configuration>
</systemPropertyVariables>
</configuration>
</plugin>
然后,让文件 ${basedir}/etc/log4j-silent.properties
具有以下设置就可以了:
log4j.rootLogger=OFF
在 maven 中测试运行期间 log4j 被完全禁用,并且在 IDE 中一切正常。
更好的解决方案是没有额外的配置文件;但目前找不到。
关于java - 在 Maven 测试阶段禁用 Log4J 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13935715/