log4j在控制台中写入空行

时间:2017-01-25 13:46:44

标签: eclipse logging log4j

我有以下log4j配置:

<appender name="MYCONSOLE" class="org.apache.log4j.ConsoleAppender">
  <param name="Threshold" value="INFO"/>
  <param name="Target" value="System.out"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{ISO8601}|%-5p|MYAPP|%t|%C{1}.%M(%L)|%m%n"/>
  </layout>
</appender>

<appender name="MYFILE" class="org.apache.log4j.DailyRollingFileAppender">
  <param name="File" value="${jboss.server.log.dir}/myapp.log"/>
  <param name="Append" value="true"/>
  <param name="DatePattern" value="'.'yyyy-MM-dd"/>

  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d{ISO8601}|%-5p|MYAPP|%t|%C{1}.%M(%L)|%m%n"/>
  </layout>
</appender>

在Eclipse控制台中,此配置生成的每个日志行后跟一个完全空白的行:

12:46:27,289 INFO  [stdout] 2017-01-25 12:46:27,289|INFO|MYAPP|something

12:46:27,289 INFO  [stdout] 2017-01-25 12:46:27,289|INFO|MYAPP|something else

这只发生在MYCONSOLE生成的日志中,所有其他日志(例如内部JBoss的日志)都没有空行。 此外,在MYFILE日志文件中,日志是相同的,但空行不在那里。

可能是什么原因?

2 个答案:

答案 0 :(得分:4)

我可以使用Error代替\n来消除额外的行。

%n奇怪行为的原因对我来说仍然不明确。

答案 1 :(得分:0)

当我使用consoleAppader作为审核记录器时,也是如此

log4j.appender.audit=org.apache.log4j.ConsoleAppender
log4j.appender.audit.layout=org.apache.log4j.PatternLayout
log4j.appender.audit.Target=System.out
log4j.appender.audit.ConversionPattern=%d{ISO8601}|%t|%m%n

控制台上转储的日志为空/空行。

如果删除,我可以摆脱空行,那我也将丢失实际数据。 不胜感激任何指针