2016-08-08 11 views
1

は、カスタムプロパティlogbackようにlogbackを設定することが可能ですか?大量のリクエスト/レスポンスで動作するWebサービスアプリケーションがありますが、デフォルトではリクエスト/レスポンスボディをログに記録することはしませんが、問題が発生したらそれをオンにするオプション(logFullMessage = true) bodyをログファイルに追加します。あなたができるアペンダ使用を切り替えるにはLogback動的構成

+0

これを制御するためにLoggerのLogLevelを使用してみませんか? 'trace'レベルでフルメッセージをログに記録すると、ロガーのレベルを' trace 'にしてスイッチをオンにするか、スイッチをオフにするためにレベルを下げることで、フルメッセージをオフ/オンにすることができます。それは何のためのレベルです。 – Fildor

+0

特別な "RequestResponse"ロガーを定義して、パッケージ構造に関係なくそれらのメッセージだけを制御することさえできます。設定を変更することでレベルを制御できます。注意:プログラムでloglevelを設定して "scan = true"を設定すると、configファイルの "scanPeriod"ごとに値がリセットされますので注意してください。 – Fildor

+0

TRACEにレベルを変更すると、アプリケーションがほぼすべてのログを記録し始めるため、問題が発生する可能性があります。 logback.xmlの設定をプログラム的に読み取ることは可能ですか?プロパティlogFullMessageの値を読み取り、大きなreq/respメッセージをログに含めるかどうかを決定します。 –

答えて

2

(のみ関連する行が表示されます):すでにアペンダを切り替えることが可能となり有効にした再スキャンオプションとの組み合わせで

<property name="USE_APPENDER" value="FILE1" /> 

<appender name="FILE1" class="ch.qos.logback.core.FileAppender"> 
    .... 
</appender> 

<appender name="FILE2" class="ch.qos.logback.core.FileAppender"> 
    .... 
</appender> 

<root level="warn"> 
    <appender-ref ref="${USE_APPENDER}"/> 
</root> 

これ。

関連する問題