java - 在 Maven 测试阶段禁用 Log4J 日志

在 IDE 中进行开发时,跟踪和调试日志可能会有所帮助,但在构建过程中,我发现这些行非常令人不安,并且混淆了 maven 或其他构建工具打印的报告。

最好让 log4j 尊重像 -Dlog4j.rootLogger=OFF1 这样的系统属性,以便与 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 中测试运行期间 log​​4j 被完全禁用,并且在 IDE 中一切正常。

更好的解决方案是没有额外的配置文件;但目前找不到。

https://stackoverflow.com/questions/13935715/

相关文章:

android - 如何加快 android ndk 构建

java - java文件中的Maven版本号

parameters - TeamCity 条件参数值

c# - 是否有 Visual Studio 构建探查器?

build - CodeBuild 执行在构建失败后继续执行,而不是停止

Maven - 从外部属性文件中读取属性

java - 如果未激活另一个配置文件,则激活 Maven 配置文件

qt - Qt的配置有哪些不同的平台

c# - 错误构建 VSTS : ## [error] Error: Unable to locat

scala - 如何为 SBT 设置默认项目