重複の可能性:
複数行テキストの行ごとにログを表示する
String m = "abc\ncdf";
log4jでslf4jを指定して使用すると、
logger.debug(m);
メソッド内でその文字列を試してみるとSomeClass.doSomething()
、新しい行の後のテキストが標準のログ プレフィックスなしで表示されます。
10:40:35,732 [DEBUG] SomeClass.doSomething():32: abc
cdf
util メソッドを使用して文字列を分割し、各行を独自のロガー呼び出しとして出力する場合:
class PrintUtil {
public static void print(String s) {
for(String line : s.split("\\n"))
logger.debug(line);
}
}
SomeClass.doSomething()
callに変更するとPrintUtil.print(m);
、元のクラス情報が失われます。
10:40:35,737 [DEBUG] PrintUtil.print():45: abc
10:40:35,737 [DEBUG] PrintUtil.print():45: cdf
呼び出し元のクラス/メソッド情報を失うことなく複数行の文字列を印刷することは可能ですか?
明確にするために、望ましい出力は次のようになります。
10:40:35,732 [DEBUG] SomeClass.doSomething():32: abc
10:40:35,732 [DEBUG] SomeClass.doSomething():32: cdf