【问题标题】:How to make logger.trace() and logger.info() work together如何让 logger.trace() 和 logger.info() 一起工作
【发布时间】:2017-04-14 11:13:52
【问题描述】:

我在与 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 附加程序之前,

logger.trace() 工作正常。

提前致谢。

【问题讨论】:

  • 到底是什么问题?
  • 问题是每当我调用 logger.trace("String") 时,我希望在 log4j.xml 中预先配置的所需文件中找到字符串,但我什么也没找到。

标签: java logging log4j wildfly slf4j


【解决方案1】:

您不能两次配置同一个记录器。只需将您的记录器配置更改为:

<logger name="ma.prg.net">
  <level value="trace" />
  <appender-ref ref="file" />
  <appender-ref ref="fileINFO" />
</logger>

通过这个,您可以将日志消息发送到 both 附加程序。但是由于您已经使用 LevelMinLevelMax 单独配置了每个附加程序,因此每个附加程序都会过滤掉它应该打印的消息。

【讨论】:

  • 您也可以在根标签中添加附加程序,例如:
猜你喜欢
  • 1970-01-01
  • 2015-10-01
  • 2017-06-11
  • 2014-01-12
  • 2020-11-03
  • 2011-03-08
  • 2019-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多