【问题标题】:Log4J not adding newlines between logfile entriesLog4J 不在日志文件条目之间添加换行符
【发布时间】:2009-11-27 01:21:57
【问题描述】:

我只是从 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 the Complete Manual中的示例修改的。我毫无结果地翻阅了这本书和谷歌,以列出所有选项的含义,但无济于事。

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

【问题讨论】:

    标签: java logging properties log4j


    【解决方案1】:

    替换

    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 + 在 n %m%n% 之后删除 % -> m%n

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

    顺便说一句。如果你想知道选项的含义

    javadoc: PatternLayout

    【讨论】:

    • 哇,我觉得自己很傻。我什至没有想过所有东西都必须在同一条线上。改变效果很好。谢谢!
    【解决方案2】:

    那些%m%n 和其他人在同一行吗?如果没有,那就解释清楚了。

    哦,对于第二个附加程序,%n 后面有一个 %。这看起来也不对。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2010-09-26
      • 1970-01-01
      相关资源
      最近更新 更多