Log4j - 有时只需要换行

时间:2013-09-16 23:39:39

标签: java logging log4j newline log4j2

使用System.out,您有:

System.out.print
System.out.println

偶尔我不想换行(比如当我正在打印“关于提交交易......完成”)。使用System.out我会这样做:

System.out.print("About to commit transaction...");
System.out.println("done.");

我无法弄清楚如何在log4j中执行此操作。我的log4j属性文件包含:

log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-30c{1} %x %-30M - %m%n 

我不想简单地删除“%n”,并且必须在每个日志语句中指定它。

这在Log4j中是否可行?

1 个答案:

答案 0 :(得分:2)

您可以尝试一些创意,例如声明三个记录器,每个记录器具有不同的appender(以及不同的conversionPattern)。

第一个是你现在拥有的(相当于System.println)。

第二个将具有模式%-30c {1}%x%-30M - %m(相当于System.print)

第三个将具有模式%m%n(相当于没有日志消息头的System.println)。

这可能会有效,但你的代码中有三个记录器似乎不值得麻烦......

您可以尝试将此请求作为log4j2中的功能...