167

うっかりミスのようですが、原因がわかりません。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">これに影響しない設定パラメータがあります。

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

4

10 に答える 10

271

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

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

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

<configuration>
  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
  <!-- etc -->
</configuration>
于 2013-10-09T10:43:22.757 に答える
47

docs で説明されているように、構成ファイルの解析中に警告またはエラーが発生した場合、logback はコンソールにステータス データを自動的に出力します。

http://logback.qos.ch/codes.html#layoutInsteadOfEncoder (つまり、logback の警告メッセージに記載されているリンク) に従ってください。そこに記載されている手順に従うと、つまり <layout> 要素を <encoder> に置き換えると、logback はコンソールにメッセージを出力しなくなります。

于 2010-07-15T21:55:37.200 に答える
5

スティーブが修正を見つけたことに気付きましたが、彼はスレッドでそれについて言及していませんでした. 他の人が同じ問題に遭遇した場合、ここで修正されます。

「<layout>」要素を「<encoder>..</encoder>」に置き換えます

犯人は次のとおりです。 <layout class="ch.qos.logback.classic.PatternLayout">

于 2013-01-15T01:14:13.467 に答える
5

この行を追加したのと同じ問題がありました

        <!-- Stop output INFO at start -->
        <statusListener class="ch.qos.logback.core.status.NopStatusListener" />

ログバックで、正常に機能しました

于 2020-02-04T09:17:52.727 に答える
2

これは0.9.29で修正されたようです。いくつかのテストを行いました。JoranINFOはもうありません。これが修正コミットだと思います。

于 2011-11-17T15:43:02.197 に答える
0

私はすべてを試しましたが、何もうまくいきませんでした。私の問題は、クラスパスに複数の logback.xml ファイルがあったことが原因でした。これは、マルチ モジュラー プロジェクトでよくあるケースです。クラスパスに logback.xml ファイルが 1 つしかない場合は、あいまいさがなくなり、問題が解決されます。

于 2015-01-22T11:03:25.757 に答える