簡體   English   中英

WireMock 無法將 log4j 級別設置為 INFO 而不是 DEBUG

[英]WireMock unable to set log4j level to INFO instead of DEBUG

我正在使用 WireMock 運行 JUnit 測試用例。 嵌入式 Jetty Server 配置如下。

@Before
public void setup() {


    final ResponseTemplateTransformer theTemplateTransformer =
            new ResponseTemplateTransformer(false);

    templateTransformerName = theTemplateTransformer.getName();

    mWireMockServer = new WireMockServer(
            WireMockConfiguration
                    .options()
                    .notifier(new ConsoleNotifier(false))
                    .extensions(theTemplateTransformer));
    mWireMockServer.start();


}

setup()方法的輸出就非常冗長,大約有 200 行。 它是這樣開始的:

> Task :processResources
> Task :classes
> Task :compileTestJava
> Task :processTestResources
> Task :testClasses
> Task :test
log4j: Threshold ="null".
log4j: Level value for root is  [DEBUG].
log4j: root level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Setting property [immediateFlush] to [true].
log4j: Setting property [threshold] to [ALL].
log4j: Setting property [target] to [System.out].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%d{yyyy-MM-dd HH:mm:ss.SSS} [%5p] [%t] [%c{1}] [%F:%L] [%X{uuid}] - %m%n].
log4j: Adding appender named [ConsoleAppender] to category [root].
2019-12-09 11:28:06.813 [DEBUG] [Test worker] [log] [Log.java:159] [] - Logging to org.slf4j.impl.Log4jLoggerAdapter(wiremock.org.eclipse.jetty.util.log) via wiremock.org.eclipse.jetty.util.log.Slf4jLog
2019-12-09 11:28:06.820 [ INFO] [Test worker] [log] [Log.java:169] [] - Logging initialized @1394ms to wiremock.org.eclipse.jetty.util.log.Slf4jLog
2019-12-09 11:28:06.841 [DEBUG] [Test worker] [ContainerLifeCycle] [ContainerLifeCycle.java:412] [] - Server@2173e69b{STOPPED}[9.4.20.v20190813] added {QueuedThreadPool[qtp547179568]@209d4c30{STOPPED,8<=0<=14,i=0,r=-1,q=0}[NO_TRY],AUTO}
2019-12-09 11:28:06.856 [DEBUG] [Test worker] [ContainerLifeCycle] [ContainerLifeCycle.java:412] [] - HttpConnectionFactory@4f25c098[HTTP/1.1] added {HttpConfiguration@613f727b{32768/8192,8192/8192,https://:0,[]},POJO}
2019-12-09 11:28:06.864 [DEBUG] [Test worker] [ContainerLifeCycle] [ContainerLifeCycle.java:412] [] - NetworkTrafficServerConnector@5a238421{null,[]}{0.0.0.0:0} added {Server@2173e69b{STOPPED}[9.4.20.v20190813],UNMANAGED}
2019-12-09 11:28:06.865 [DEBUG] [Test worker] [ContainerLifeCycle] [ContainerLifeCycle.java:412] [] - NetworkTrafficServerConnector@5a238421{null,[]}{0.0.0.0:0} added {QueuedThreadPool[qtp547179568]@209d4c30{STOPPED,8<=0<=14,i=0,r=-1,q=0}[NO_TRY],AUTO}
2019-12-09 11:28:06.865 [DEBUG] [Test worker] [ContainerLifeCycle] [ContainerLifeCycle.java:412] [] - NetworkTrafficServerConnector@5a238421{null,[]}{0.0.0.0:0} added {ScheduledExecutorScheduler@5839ea4{STOPPED},AUTO}
2019-12-09 11:28:06.866 [DEBUG] [Test worker] [ContainerLifeCycle] [ContainerLifeCycle.java:412] [] - NetworkTrafficServerConnector@5a238421{null,[]}{0.0.0.0:0} added {wiremock.org.eclipse.jetty.io.ArrayByteBufferPool@f73022f,POJO}

我不想打印 DEBUG 日志,只是 INFO 級別的東西 我嘗試通過如下更改 WireMock 配置來做到這一點。 我正在做的事情在官方文檔的Notification (logging)部分中有描述,所以請隨意查看。

.notifier(new ConsoleNotifier(false)) //attribute verbose is set to false

還試圖通過在 src/test/resources/ 下添加一個 log4j.properties 文件來解決這個問題

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.logger.org.apache.http.wire=INFO

有人能幫助我嗎?

這在我的情況下有效(Spring,Logback) - src/test/resources/logback-test.xml

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

    <!-- Decrease amount of logs from Jetty started by WireMock -->
    <logger name="org.eclipse.jetty" level="info"/>
    <logger name="org.eclipse.jetty.server.handler.ContextHandler" level="warn"/>
</configuration>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM