12

logback マニュアルを 2 時間読んでいますが、必要なことを行う方法がまだわかりません。

タイトルが示すように単純です。エラーのみをファイルに記録し、他のレベル (エラーを含む) をコンソールに記録したいのです。

これは、私の logcat.xml ファイルのルート セクションです。

    <root level="TRACE" >
        <appender-ref ref="CONSOLE_APPENDER" />
        <appender-ref ref="FILE_APPENDER" />
    </root>

この構成の問題は、すべてのレベル >= TRACE を両方のアペンダーに記録することです。

コンソールのみでルートを許可し、ファイルロガーを定義できます。

    <logger name='file_logger' level='ERROR' >
        <appender-ref ref="FILE_APPENDER" />
    </logger>

しかし、次のように通常のロガーを呼び出す必要があります。

LoggerFactory.getLogger(ClientClass.class);

そして、このようなファイルロガー:

LoggerFactory.getLogger("file_logger");

クラスごとにロガーを選択したくありません。クラスをパラメーターとして使用してファクトリーからルートロガーを取得し、レベルに応じて正しいことを実行させたいだけです。

これは可能ですか?

4

3 に答える 3

23

これをファイルアペンダー定義に入れます:

<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
    <level>ERROR</level>
</filter>

ThresholdFilterにありlogback-classic.jarます。

于 2013-10-30T17:05:02.547 に答える