Log4j - 有时只需要换行符

Sri*_*bat 5 java logging log4j newline log4j2

通过 System.out,您可以:

System.out.print
System.out.println
Run Code Online (Sandbox Code Playgroud)

有时我不需要换行符(例如当我打印“关于提交事务...完成”时)。使用 System.out 我会这样做:

System.out.print("About to commit transaction...");
System.out.println("done.");
Run Code Online (Sandbox Code Playgroud)

我不知道如何在 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 
Run Code Online (Sandbox Code Playgroud)

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

这在 Log4j 中可能吗?

Rem*_*pma 2

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

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

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

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

这可能有效,但是在代码中使用三个记录器似乎不值得这么麻烦......

您可以尝试将其作为 log4j2 中的一项功能来请求...