[英]How to make logger.trace() and logger.info() work together
I have an issue logging TRACE function in distinct file from INFO function, i prepared a classic log4j.xml file containing all the required configuration. 我在与INFO函数不同的文件中记录TRACE函数时遇到问题,我准备了一个经典的log4j.xml文件,其中包含所有必需的配置。
logger.info() is working. logger.info()正在工作。
logger.trace() is not working. 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>
logger.trace() was working fine before i added fileINFO appender. 在添加fileINFO附加程序之前, logger.trace()工作正常。
Thanks in advance. 提前致谢。
You cannot configure the same logger twice. 您不能两次配置同一记录器。 Just change your logger configuration to:
只需将您的记录器配置更改为:
<logger name="ma.prg.net">
<level value="trace" />
<appender-ref ref="file" />
<appender-ref ref="fileINFO" />
</logger>
With this you send the logging message to both appenders. 这样,您就可以将日志消息发送到两个追加程序。 But as you already configured each appender individually with LevelMin and LevelMax , each filters out the messages it should print.
但是,由于您已经分别使用LevelMin和LevelMax配置了每个附加程序,因此每个过滤器都会过滤出应该打印的消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.