2017-10-30 3 views
0

私の管理外の理由により、使用する必要のあるログ収集インフラストラクチャによって改行が正しく処理されません。ログバックに例外がある場合に何かを追加する

回避方法は、\nを別の文字に置き換えることです。 _newline_

これは、パターンを構成することにより、logbackで行うことができます

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <encoder> 
    <!-- Standard pattern --> 
    <!-- <pattern>%coloredLevel - %logger - %message%n%xException{15}</pattern> --> 
    <!-- With newlines removed --> 
    <pattern>%coloredLevel - %logger - %replace(%message){'\n', '_newline_'}_newline_%replace(%xException){'\n', '_newline_'}%nopex%n</pattern> 
    </encoder> 
</appender> 

例外がないときは、このlogslinesで余分_newline_を追加します。 (また、トレースをスタックするために余分な改行を追加しますが、大きな問題ではありません)

メッセージと例外の間に_newline_だけを出力する方法はありますか?

+0

で余分な例外スタックトレースを交換することで、非常にhackilyそれを解決し、私は)(あなたが代わる%外_newline_ハードコーディングしていることにより、タイプミスがあると思います{}コールは、常に放出されることを意味します。 –

+0

@MichaelLangは正しいですが、そうでない場合、ログメッセージと例外メッセージ/スタックトレースの間に新しい行はありません – dtech

答えて

0

は、私は再びあなたのラインをチェックし、単一の_newline_

<pattern>%coloredLevel - %logger - %replace(%message){'\n', '_newline_'} %replace(%replace(%ex{0}){'\n',''}){'.+', '&lt;nl&gt;'}%replace(%xException){'\n', '_newline_'}%nopex%n</pattern> 
関連する問題