我不知道为什么log4j会使用不同的格式追加两次。有人遇到过吗?
这是我的log4j.xml文件:
<log4j:configuration>
<appender name="async" class="org.apache.log4j.AsyncAppender">
<!-- this parameter need to be set to false to avoid application from hanging. -->
<param name="Blocking" value="false" />
<appender-ref ref="myAppender" />
</appender>
<appender name="myAppender" class="org.apache.log4j.ConsoleAppender">
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{ISO8601} [%t] %c %x - %m%n" />
</layout>
</appender>
<logger name="com.server">
<level value="INFO" />
</logger>
<logger name="org.springframework">
<level value="INFO" />
</logger>
<logger name="org.hibernate.LazyInitializationException" additivity="false">
<level value="off" />
<appender-ref ref="async" />
</logger>
<logger name="net.sf.ehcache">
<level value="INFO" />
</logger>
<logger name="com.mchange">
<level value="INFO" />
</logger>
<root>
<priority value="INFO" />
<appender-ref ref="async" />
</root>
</log4j:configuration>
这是一些示例输出:
INFO 2016-08-26 11:01:38,353 [main] com.server.Server - Server started successfully...
11:01:38,353 INFO : Server started successfully...
编辑:当我将“ myAppender”追加器阈值更改为“ ERROR”时,仍将生成显示的第二条日志消息(以时间开头的消息,而不是“ INFO”消息)。是否需要禁用某些默认记录器?即使指定的附加程序用于“ ERROR”级别的消息,似乎仍在记录那些“ INFO”级别的消息。另外,如果我注释掉整个log4j.xml文件,第二条日志消息(以及所有类似消息)仍在记录中。我该如何预防呢?谢谢!
问题解决了,我不得不做:
<logger name="com.server" additivity="false">
<level value="INFO" />
<appender-ref ref="async" />
</logger>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句