代码之家  ›  专栏  ›  技术社区  ›  ssakl

log4j不在日志文件条目之间添加换行符

  •  4
  • ssakl  · 技术社区  · 16 年前

    我刚开始使用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完整手册 . 我看了这本书和谷歌,却毫无收获地得到了所有选项的清单,但都无济于事。

    我使用的是Log4J版本1.2.15和Java 6。我该怎么做才能在单独的行中获取每个日志条目,在哪里可以找到所有选项的列表以及它们的作用?

    2 回复  |  直到 16 年前
        1
  •  10
  •   jitter    16 年前

    替换

    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% -gt; m%n

    基本上你在 - 你的角色 ConversionPattern 线。这就解释了为什么新行不能输出( %n -->输出平台依赖的换行符)

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

    javadoc: PatternLayout

        2
  •  4
  •   Carl Smotricz    16 年前

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

    哦,对于第二个附加器,在后面有一个百分比 %n . 看起来也不太对劲。