1

重複の可能性:
複数行テキストの行ごとにログを表示する

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
4

2 に答える 2

0

私があなたを正しく理解しているなら、あなたはそのようなものが欲しいです:

 10:40:35,737 [DEBUG] PrintUtil.print():45: abc
                                            cdf

文字列に「\t」(タブ)を追加するのはどうですか?

于 2012-07-31T15:40:25.503 に答える
0

「\r\n」を追加できるはずです

logger.info("test\r\ntest");
于 2012-07-31T15:41:14.527 に答える