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

时间:2017-06-09 14:52:08

标签: logging spring-boot wiremock

我在Spring Boot应用程序中使用Wiremock进行测试。我似乎无法使日志记录不输出所有调试日志,这使我的测试运行非常详细。

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

  

DEBUG wiremock.org.eclipse.jetty.util.log - 通过wiremock.org.eclipse.jetty.util.log.Slf4jLog登录Logger [wiremock.org.eclipse.jetty.util.log]

但是尝试在我的application.properties中配置它,

  

logging.level.wiremock.org.eclipse = WARN

没有效果,我也设置了

  

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

但是,再一次,没有效果。由于我使用spring-boot-starter-web使用spring-boot-starter-loggingwhich if I understand correctly uses 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记录调试级别。我错过了什么?

3 个答案:

答案 0 :(得分:6)

好的,我刚刚遇到这个问题并最终解决了它。 您需要配置3种不同的记录器 - wiremock.org.eclipse 中的eclipse记录器 - WireMock 的线缆通知器 - &#34; /&#34; 中的serverlet记录器或记录器所在的记录器。 - 记录在 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"/>

答案 1 :(得分:0)

一个快速解决方案是更改logging.level.rootINFO将使WireMock足够详细以检查存根匹配,而WARN将阻止它。

当然有副作用。这会影响所有日志记录;但又脏又快。

答案 2 :(得分:0)

如果您想以编程方式实现此目的,并且您将SLF4J与Logback结合使用(Spring Boot 2.2中的默认设置),只需执行以下操作:

((LoggerContext) LoggerFactory.getILoggerFactory()).getLogger("wiremock").setLevel(Level.OFF);
((LoggerContext) LoggerFactory.getILoggerFactory()).getLogger("WireMock").setLevel(Level.OFF);

(使用WireMock 2.25)