我有以下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日志文件中,日志是相同的,但空行不在那里。
可能是什么原因?
答案 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
控制台上转储的日志为空/空行。
如果删除,我可以摆脱空行,那我也将丢失实际数据。 不胜感激任何指针