レイアウトを使用するときに、ログバックが各ログの開始時に独自のステータスを出力しないようにする方法 質問する

レイアウトを使用するときに、ログバックが各ログの開始時に独自のステータスを出力しないようにする方法 質問する

これは不注意によるエラーのようですが、原因がわかりません。logback/slf4j (最新バージョン slf4j-api-1.6.1、logback core/classic 0.9.24) でログを記録します。テスト用の最もシンプルなログ構成は次のとおりです。

<configuration>
 <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
  <layout class="ch.qos.logback.classic.PatternLayout">
   <!-- DONT USE THIS FORMATTER FOR LIVE LOGGING THE %L LINE NUMBER OUTPUTTER IS SLOW -->
   <pattern>%le %-1r [%c{1}:%L] %m%n</pattern>
  </layout>
 </appender>
 <root level="DEBUG">
  <appender-ref ref="stdout" />
 </root>
</configuration>

すべてのログ設定は、logback の内部ステータス行から始まります。

11:21:27,825 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]
11:21:27,826 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback-test.xml] at [file:.../logback-test.xml]
11:21:28,116 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
11:21:28,124 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
11:21:28,129 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming appender as [stdout]
11:21:28,180 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - Pushing component [layout] on top of the object stack.
11:21:28,206 |-WARN in ch.qos.logback.core.ConsoleAppender[stdout] - This appender no longer admits a layout as a sub-component, set an encoder instead.
11:21:28,206 |-WARN in ch.qos.logback.core.ConsoleAppender[stdout] - To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
11:21:28,206 |-WARN in ch.qos.logback.core.ConsoleAppender[stdout] - See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
11:21:28,207 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - Setting level of ROOT logger to DEBUG
11:21:28,207 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - Attaching appender named [stdout] to Logger[ROOT]

ドキュメントによると、これは logback がデフォルトで使用する形式です。次に、(別の形式を出力するように設定されている) 設定の読み取りを終了し、適切にフォーマットされた出力を続行します。<configuration debug="false">これに影響を与えない設定パラメータがあります。

これをオフにする方法を知っている人はいますか?

ベストアンサー1

debug要素の属性configurationを に設定するとtrue、すべてのステータス情報がコンソールに表示されます。これが問題になる場合は、これを false に設定するか、削除してください。

レベル以上の構成の問題がある場合はWARN、すべてのステータス情報もコンソールに記録されます (レベルのメッセージを含む)。この問題の最善の解決策は、問題を修正することです (この場合は、要素を要素にINFO置き換えます)。<layout><encoder>

何らかの理由で問題を解決できず、コンソールからステータス情報を削除したい場合は、代わりに を設定できますStatusListener。 を使用してNopStatusListener、ステータス情報を完全に削除します。

<configuration>
  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
  <!-- etc -->
</configuration>

おすすめ記事