2013-10-30 7 views
10

ログバックのマニュアルを2時間読んでいますが、必要な処理を実行する方法がわかりません。ログバック:エラーのみをファイルに記録する方法

タイトルと同じくらい簡単です:エラーをファイルに記録し、他のレベル(ERRORを含む)をコンソールに記録します。

これは私の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"); 

私は各クラスのロガーを選択することはできません。私はちょうどパラメータとしてクラスを使用して工場からルートロガーを取得し、レベルに応じて正しいことをしたい。

これは可能ですか?

答えて

19

は、ファイルアペンダの定義にこれを入れて:

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

ThresholdFilterlogback-classic.jarです。

+1

ニース。私は[logback for android](https://github.com/tony19/logback-android)を使っていますが、うまくいくようです。 –

+3

これも役立ちます。 logback.xmlのXSD。それは設定変数であなたを助けることができます。 https://github.com/enricopulatzo/logback-XSD – az3

関連する問題