给定String m = "abc\ncdf";
并将slf4j与log4j一起使用,
如果我在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()
以致电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
答案 0 :(得分:0)
如果我站在你的右边你想要一些这样的东西:
10:40:35,737 [DEBUG] PrintUtil.print():45: abc
cdf
将'\ t'(制表符)添加到字符串怎么样?
答案 1 :(得分:0)
您应该可以添加“\ r \ n”
logger.info("test\r\ntest");