4

System.out を使用すると、次のものが得られます。

System.out.print
System.out.println

場合によっては、改行が必要ないことがあります ("About to commit transaction...done" を出力するときなど)。System.out を使用すると、次のようになります。

System.out.print("About to commit transaction...");
System.out.println("done.");

log4jでこれを行う方法がわかりません。私のlog4jプロパティファイルにはこれがあります:

log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-30c{1} %x %-30M - %m%n 

「%n」を単純に削除して、すべてのログ ステートメントで指定する必要はありません。

これはLog4jで可能ですか?

4

1 に答える 1

2

それぞれが異なるアペンダー (および異なる conversionPattern) を持つ 3 つのロガーを宣言するなど、何か創造的なことを試すことができます。

最初のものは、現在持っているものです (System.println に相当します)。

2 番目のパターンは %-30c{1} %x %-30M - %m (System.print に相当) になります。

3 番目のパターンは %m%n (ログ メッセージ ヘッダーのない System.println に相当) になります。

これはうまくいくかもしれませんが、コードに 3 つのロガーを含めることは、手間をかける価値がないように思えます...

これを log4j2 の機能としてリクエストしてみてください...

于 2013-09-18T22:57:11.330 に答える