运行 通过 Maven 插件进行 Gauge 测试时如何设置日志级别

How to set log level when running Gauge tests via Maven plugin

当 运行 我的 Gauge 通过 mvn gauge:execute -DspecsDir=specs 测试时,控制台输出被 DEBUG 输出污染。

16:33:46.950 [main] DEBUG org.reflections.Reflections - could not scan file META-INF/MANIFEST.MF ...
16:33:46.951 [main] DEBUG org.reflections.Reflections - could not scan file META-INF/MANIFEST.MF ...
16:33:46.951 [main] DEBUG org.reflections.Reflections - could not scan file META-INF/maven/net.minidev/json-smart/pom.properties ...
...
16:35:52.676 [Thread-1] DEBUG org.apache.http.impl.execchain.MainClientExec - Executing request PUT ...
16:35:52.676 [Thread-1] DEBUG org.apache.http.impl.execchain.MainClientExec - Target auth state: UNCHALLENGED
16:35:52.676 [Thread-1] DEBUG org.apache.http.headers - http-outgoing-0 >> PUT ...

如何设置这些测试的日志级别(当 运行 它们通过 Maven 插件时)?

你可以给 JVM 这些 Opts

mvn gauge:execute -DspecsDir=specs -Dorg.slf4j.simpleLogger.defaultLogLevel=warn

mvn gauge:execute -DspecsDir=specs -Dorg.slf4j.simpleLogger.defaultLogLevel=warn

或者 使用安静模式

mvn gauge:execute -q -DspecsDir=specs

mvn gauge:execute -Dflags="--verbose=false,--log-level=warn" -DspecsDir=specs

这似乎与 MNG-6181 有关,已在 Maven 的 3.5.0 版本中修复。因此,如果您现在使用的不是最新版本,则可以升级 Maven 版本以使用该修复程序。


如果您想使用现有版本(3.1 或更高版本)操作所有 Maven 构建的日志记录选项,您可以尝试在文件中修改其记录器实现:

${MAVEN_HOME}/conf/logging/simplelogger.properties

例如在 MacOSX 上,它有点像-

vi /usr/local/Cellar/maven/3.5.0/libexec/conf/logging/simplelogger.properties

然后确保属性包括如下内容:-

org.slf4j.simpleLogger.log.org.apache.maven.wagon.providers.http.httpclient=off
org.slf4j.simpleLogger.log.org.apache.maven.wagon.providers.http.httpclient.wire=off

或者,您可以执行带有 quiet 选项的 mvn 命令以仅过滤掉错误日志。要使用的更新命令为:-

mvn gauge:execute -DspecsDir=specs -q