[英]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.