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を停止する方法は?