【问题标题】:Log4j 2.6 warning for a null message factory空消息工厂的 Log4j 2.6 警告
【发布时间】:2016-06-06 12:20:26
【问题描述】:

升级到 log4j2 2.6 版后,我面临以下警告:

2016-06-06 16:36:14,920 localhost-startStop-1 WARN The Logger foo.bar was created with the message factory org.apache.logging.log4j.spi.MessageFactory2Adapter@437958b6 and is now requested with a null message factory (defaults to org.apache.logging.log4j.message.ParameterizedMessageFactory), which may create log events with unexpected formatting.

2.5 版没问题,有 cmets 吗?!

我在 appenders 中看到了日志消息

【问题讨论】:

    标签: java logging log4j log4j2


    【解决方案1】:

    这是 Log4j 2.6 版本中的一个错误。它已修复(请参阅https://issues.apache.org/jira/browse/LOG4J2-1407)并将在即将发布的 2.6.1 版本中修复(现在正在审查,应该会在大约 48 小时内上线)。

    这不是一个真正的问题,错误是不必要地显示警告。

    【讨论】:

    • 感谢您的快速修复!
    • 我一直在试图找出是什么阻止了我的日志记录工作。要是我早点看到这个就好了,非常感谢!
    【解决方案2】:

    主要是因为记录器是作为实例对象创建的,而不是静态对象,像这样:

    public class PropertiesConfigurationFactory {
        private final Log logger = LogFactory.getLog(getClass());
    }
    

    当再次创建 PropertiesConfigurationFactory 时,logger 也会被创建。

    在 LoggerContext 中会得到创建的 logger 实例

    getLogger(name, null)
    

    null 是 MessageFactory

    所以它将使用旧记录器的消息工厂检查 null 它打印出这个警告。看起来还可以。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多