首页 文章

打印多行字符串[重复]

提问于
浏览
1

可能重复:显示多行文本的每行日志

鉴于 String m = "abc\ncdf"; 并将slf4j与log4j一起使用,

如果我在 SomeClass.doSomething() 方法中尝试 logger.debug(m); 该字符串,则将显示新行之后的文本,而不显示标准日志记录前缀:

10:40:35,732 [DEBUG] SomeClass.doSomething():32: abc
cdf

如果我使用util方法拆分字符串并将每行打印为自己的 Logger 调用:

class PrintUtil {
    public static void print(String s) {
        for(String line : s.split("\\n"))
            logger.debug(line);
    }
}

并更改 SomeClass.doSomething() 以调用 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

2 回答

  • 0

    你应该能够添加“\ r \ n”

    logger.info("test\r\ntest");
    
  • 0

    如果我站在你的右边你想要一些这样的东西:

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

    把'\ t'(tab)添加到字符串怎么样?

相关问题