我在 INFO 功能的不同文件中记录 TRACE 功能时出现问题,我准备了一个包含所有必需配置的经典log4j.xml文件。
logger.info()正在运作 logger.trace() 不正在工作。
<appender name="file" class="org.apache.log4j.FileAppender">
<param name="append" value="true" />
<param name="file" value="C:/logs/transaction.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="TRACE" />
<param name="LevelMax" value="TRACE" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<appender name="fileINFO" class="org.apache.log4j.FileAppender">
<param name="append" value="true" />
<param name="file" value="C:/logs/server.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<logger name="ma.prg.net">
<level value="trace" />
<appender-ref ref="file" />
</logger>
<logger name="ma.prg.net">
<level value="info" />
<appender-ref ref="fileINFO" />
</logger>
在添加 fileINFO appender之前,logger.trace()工作正常。
提前致谢。
答案 0 :(得分:0)
您无法两次配置相同的记录器。只需将记录器配置更改为:
<logger name="ma.prg.net">
<level value="trace" />
<appender-ref ref="file" />
<appender-ref ref="fileINFO" />
</logger>
使用此功能,您可以将日志消息发送给两个 appenders。但是,由于您已使用 LevelMin 和 LevelMax 单独配置每个appender,因此每个appender都会过滤掉它应该打印的消息。