我刚开始使用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。我可以做什么来将每个日志条目放在一个单独的行上,哪里可以找到所有选项的列表以及它们的作用?
答案 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
- >输出平台依赖换行符)
顺便说一下。如果你想知道选项意味着什么
答案 1 :(得分:4)
那些%m%n
与其他人在同一条线上吗?如果没有,那就解释了。
哦,对于第二个appender,你在%n
之后有一个%。这看起来也不正确。