Log4J没有在日志文件条目之间添加换行符

时间:2009-11-27 01:21:58

标签: java logging properties log4j

我刚开始使用log4j。我在阅读我的属性文件并实际记录事件时没有问题,但似乎是将所有内容追加到同一行的末尾。我的属性文件如下所示:

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A2 is set to be a ConsoleAppender.
log4j.appender.A2=org.apache.log4j.FileAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x -
%m%n

# A2 uses PatternLayout.
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-4r [%t] %-5p %c %x -
%m%n%

log4j.appender.A2.file=grocerylister.log

以上内容是根据 log4j完整手册中的示例进行修改的。我毫不费力地浏览了这本书和Google,列出了所有选项的含义,但无济于事。

我正在使用带有Java 6的log4j版本1.2.15。我可以做什么来将每个日志条目放在一个单独的行上,哪里可以找到所有选项的列表以及它们的作用?

2 个答案:

答案 0 :(得分:10)

替换

log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x -
%m%n

log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

相同的A2 +删除了%后面的%m%n% - > m%n

基本上,您的-行中的ConversionPattern字符后面似乎有换行符。这可以解释为什么不输出换行符(%n - >输出平台依赖换行符)

顺便说一下。如果你想知道选项意味着什么

javadoc: PatternLayout

答案 1 :(得分:4)

那些%m%n与其他人在同一条线上吗?如果没有,那就解释了。

哦,对于第二个appender,你在%n之后有一个%。这看起来也不正确。