使用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中是否可行?
答案 0 :(得分:2)
您可以尝试一些创意,例如声明三个记录器,每个记录器具有不同的appender(以及不同的conversionPattern)。
第一个是你现在拥有的(相当于System.println)。
第二个将具有模式%-30c {1}%x%-30M - %m(相当于System.print)
第三个将具有模式%m%n(相当于没有日志消息头的System.println)。
这可能会有效,但你的代码中有三个记录器似乎不值得麻烦......
您可以尝试将此请求作为log4j2中的功能...