禁用 WireMock 的日志记录

问题描述 投票:0回答:2

我正在使用

@AutoConfigureWireMock(port = 0)
来初始化模拟服务器。

这是用 Kotlin 编写的设置类:

@AutoConfigureWireMock(port = 0)
@SpringBootTest(
    webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
)
class MockServerBase {

    @Autowired
    lateinit var mockServer: WireMockServer

    @BeforeEach
    fun setUp() {
        mockServer.start()
    }

它工作正常,我在运行测试时看到以下登录控制台:

2022-06-11 11:58:14.639  INFO [...,,] 97733 --- [qtp630910066-62] WireMock                                 : Request received:
127.0.0.1 - GET /api/v1/.../objects/b4a67951-4408-424f-916b-66852b012160

Authorization: [Bearer eyJraWQiOiJtaWNyb3NcL29zLXRlc3RlclwvMTY1Mjg1ODYyMiIsImFsZyI6IlJTMjU2In0.eyJhdWQiOiJ0ZHAtb3MiLCJuYmYiOjE2NTQ5MTI2OTQsImlzcyI6Im1pY3Jvc1wvb3MtdGVzdGVyIiwiZXhwIjoxNjU0OTEyNzU0LCJpYXQiOjE2NTQ5MTI2OTQsImp0aSI6ImU5MGNlMGI0LTlmMjMtNDJlNS1iMDc4LWU4MGE0ZWI5MzFjOCJ9.U35a8zPH8-HZeWwSKaFq2KDebLkdWz99YCxcs9qDBYcPCRn_s_BhKJLgu8OCq3s4MAC0VmGZS6JqRzvUa-qIqfoA3DT6LSoDoVRwEZycnlL3OP6PJ6nVz1u-zkaNHfz8mBQ-3xuPmDKRddBArcvMfb7LuM3n-Tv6d1hb87QnDHqWqyl9S976jd4QKd21ymm30LziW1QeJXAINcq6YRvJfTZ7AhdorwYy0AwhGE-LD8xqYjUJwuy-WQaHsuZ8oClGIm3mUy2su5yIVHwQEldI2Gxv9gefF6eH__e4bdWWPwaDtkN2_KKIEBJaVGk53292EuRzQixO5UCe3rIuP1X96A]
Accept: [application/json]
X-B3-SpanId: [b91171b9168b6d9c]
User-Agent: [ReactorNetty/1.0.17]
X-B3-Sampled: [1]
Host: [localhost:10441]
X-B3-TraceId: [b91171b9168b6d9c]
x-partition-id: [v1-test]



Matched response definition:
{
  "status" : 200,
  "body" : "{\"bucketKey\":\"....\",\"objectId\":\"b4a67951-4408-424f-916b-66852b012160\",\"partitionId\":\"v1-test\",\"currentVersion\":\"1654912692121\",\"checksum\":\"OJEcxfNhApqHyPfrShDS\",\"s3Etag\":\"0Y5AwxkypfgbZ9mEyUa7og==-4\",\"size\":20971520,\"creationInfo\":{\"by\":\"o0m6CQM0Db\",\"at\":1654912692121},\"updateInfo\":null}",
  "headers" : {
    "Content-Type" : "application/json"
  }
}

Response:
HTTP/1.1 200
Content-Type: [application/json]
Matched-Stub-Id: [e8be9cdb-0138-4490-a65f-07562812fedc]

我的问题是,我可以关闭这个日志吗?

原因是我们正在编写一个性能测试,在标头中传递一个超长字符串,控制台被该字符串淹没,有时甚至会导致 VM 崩溃。

我做了一些搜索,有人在启动选项中提到了

ConsoleNotifier
,但是有了这个
@AutoConfigureWireMock
注释我不知道在哪里设置通知程序。

java wiremock
2个回答
4
投票

感谢@chrylis

的建议

通过在

logback-test.xml
文件夹下添加
/src/test/resources
解决,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>

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

    <!-- wiremock has per endpoint servlet logging -->
    <logger name="/" level="WARN"/>
</configuration>

   

更新:

logback-test.xml


0
投票

使用 Spring Boot,您可以简单地将此配置添加到

application-test.yml
文件:

logging:
  level:
    WireMock: WARN
© www.soinside.com 2019 - 2024. All rights reserved.