2017-01-10 35 views
2

私はlog4j2に移行しようとしています。 RollingFileアペンダで 私は以下のように追加してい:log4j2で空のスレッドコンテキスト中括弧の処理

<PatternLayout> 
    <pattern>[%d{MM/dd/yy HH:mm:ss:SSS z}] %-18.18t %-35.35c{1} %-5p (%F:%L) %m \t %x %n</pattern> 
</PatternLayout> 

私たちは、%xは、すべてのロガー文の最後にスタック要素を印刷するためのものであることを知っています。私のスタックは、最初は空である場合

は今、それは以下のように私に空の括弧を与えています。

[01/10/17 12:17:37:116 IST] main    Example2       WARN (Example2.java:52) 10 is the number  [] 

[01/10/17 12:17:37:116 IST主例2(Example2.java:52)をWARN 10は、どのように私はこの空のスタックを処理しない数[]

ありますシナリオ?

+0

Iは以下のように括弧なしロガーをしたいです。 [01/10/17 12:17:37:116 IST] main例2 WARN(Example2.java:52)10は数字「 – user3207875

答えて

1

あなたはPatternLayoutnotEmpty{pattern}パターンコンバータを使用することができます

これはパターンの評価結果を出力する場合と、パターン内のすべての変数が空でない場合に限ります。例えば

%notEmpty{[%x]} 

別名:variablesNotEmpty {パターン}、 varsNotEmpty {パターン}、 notEmpty {パターン}

+0

」これは機能しません。 '%notEmpty {[%x]}'を**%n **とし、ロガーを次の行に移動します。 – user3207875

+0

あなたはどのバージョンを使用していますか?この機能はかなり最近のものです。あなたは 'varsNotEmpty'を試しましたか? –

+0

はい私もそれを試みた。私はlog4j2を使用しています。 – user3207875