鉴于String m = "abc\ncdf";
并使用与log4j的SLF4J,
如果我尝试logger.debug(m);
该字符串SomeClass.doSomething()
方法里面,新行后面的文本将不显示标准日志前缀:
10:40:35,732 [DEBUG] SomeClass.doSomething():32: abc
cdf
如果我使用一个实用程序的方法来分割字符串并打印每一行作为自己的记录通话:
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
我编辑的问题,包括我试图创建 – Alex 2012-07-31 16:12:43
你可以添加你的功能所需的数据输出。您应该能够检查堆栈并找出谁调用了PrintUtil.print()函数。快速谷歌搜索给我:http://www.javalobby.org/java/forums/t67019.html。不那么英俊,但应该工作。 – elyashiv 2012-07-31 17:09:48