Logback – ユニットテストでのロギングを無効にする
ユニットテストがIDEで実行されている間、Logbackは以下のような多くの設定やステータスを表示しています:
21:16:59,569 |-INFO in ch.qos.logback.classic.LoggerContext[default]- Could NOT find resource[logback.groovy]21:16:59,569 |-INFO in ch.qos.logback.classic.LoggerContext[default]- Could NOT find resource[logback-test.xml]21:16:59,569 |-INFO in ch.qos.logback.classic.LoggerContext[default]- Found resource[logback.xml]at ... //... omitted for readability. 21:17:00,051 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named[STDOUT]to Logger[ch.qos.logback]21:17:00,051 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to OFF 21:17:00,051 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named[STDOUT]to Logger[ROOT]21:17:00,051 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - End of configuration. 21:17:00,053 |-INFO in ch.qos.logback.classic.joran.JoranConfigurator@20e2cbe0 - Registering current configuration as safe fallback point java.lang.AssertionError: Expected: is (3) but: was (2) at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8)
私はエラーメッセージのために手動でスクロールする必要があるので、特に失敗したテストのために、本当に面倒です!
1.ソリューション – 空の設定
これを修正するには、空の設定ファイルを
logback-test.xml`として作成し、
$ project/src/test/resources`に保存します
$ project/src/test/resources/logback-test.xml
<!-- only one line, shut up logback ! --> <configuration/>
ユニットテストをもう一度実行してください。それ以上のナンセンスはありません。https://www.youtube.com/watch?v=n03g8nsaBro[silenceは金色です。
2.解決策 – NopStatusListener
あるいは、次のように `NopStatusListener`を追加してください:
logback-test.xml
<configuration> <statusListener class="ch.qos.logback.core.status.NopStatusListener"/> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern> %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n </Pattern> </layout> </appender> <root level="error"> <appender-ref ref="STDOUT"/> </root> </configuration>
これをチェックする –
ログの開始時にINFOを停止する方法は?