4

With System.out, you have:

System.out.print
System.out.println

Occasionally I don't want a newline (like when I'm printing "About to commit transaction...done"). With System.out I would do this:

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

I can't figure out how to do this in log4j. My log4j properties file has this:

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 

I don't want to simply remove the "%n" and have to specify it in every single logging statement.

Is this possible in Log4j?

4

1 回答 1

2

您可以尝试一些创意,例如声明三个记录器,每个记录器具有不同的附加程序(和不同的转换模式)。

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

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

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

这可能可行,但在您的代码中拥有三个记录器似乎不值得麻烦......

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

于 2013-09-18T22:57:11.330 回答