无法关闭Wiremock的调试日志记录

21

我在一个Spring Boot应用中使用Wiremock来进行测试。我似乎无法停止日志记录所有的调试日志,这使得我的测试运行非常冗长。

我在启动时看到它使用SLF4J:

DEBUG wiremock.org.eclipse.jetty.util.log - Logging to Logger[wiremock.org.eclipse.jetty.util.log] via wiremock.org.eclipse.jetty.util.log.Slf4jLog

但是尝试通过application.properties进行配置,如下所示:

logging.level.wiremock.org.eclipse=WARN

没有任何效果。我还设置了:

logging.level.com.github.tomakehurst.wiremock=WARN

但同样没有效果。由于我使用了spring-boot-starter-web,它使用spring-boot-starter-logging如果我理解正确,它使用Logback,因此我还尝试在logback-spring.xml中进行配置,

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="wiremock.org.eclipse" level="INFO"/>
</configuration>

我再怎么做都无法停止Wiremock记录调试级别的日志。我错过了什么吗?

4个回答

24

好的,我刚遇到这个问题并最终解决了它。 你需要配置3个不同的日志记录器:

  • eclipse 日志记录器在 wiremock.org.eclipse
  • wiremock 通知器在 WireMock
  • servlet 日志记录器在"/"或任何你的日志记录器所在的位置。
  • wiremock 代码记录器在 com.github.tomakehurst.wiremock

我发现 bootstrap.yml 对这些日志记录器没有影响,因此您需要将它们放入位于 /src/test/resources 文件夹中的 logback-test.xml 中。

以下是条目:

<!-- Turning down the wiremock logging -->
<logger name="com.github.tomakehurst.wiremock" level="WARN"/>
<logger name="wiremock.org" level="ERROR"/>
<logger name="WireMock" level="WARN"/>
<!-- wiremock has per endpoint servlet logging -->
<logger name="/" level="WARN"/>

0
一个快速的解决方法是更改logging.level.root; INFO将使WireMock足够详细以检查存根匹配,而WARN将防止它。
当然,这会产生副作用; 这会影响所有日志记录; 但是这很简单粗暴。

0

0
如果您想以编程方式实现此操作,并且正在使用带有Logback的SLF4J(Spring Boot 2.2中的默认设置),请执行以下操作:
((LoggerContext) LoggerFactory.getILoggerFactory()).getLogger("wiremock").setLevel(Level.OFF);
((LoggerContext) LoggerFactory.getILoggerFactory()).getLogger("WireMock").setLevel(Level.OFF);

(使用 WireMock 2.25)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接