空消息工厂的 Log4j 2.6 警告
Log4j 2.6 warning for a null message factory
升级到 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版本没问题,有意见吗?!
我在附加程序中看到日志消息
主要是因为记录器是作为实例对象创建的,而不是静态对象,如下所示:
public class PropertiesConfigurationFactory {
private final Log logger = LogFactory.getLog(getClass());
}
再次创建 PropertiesConfigurationFactory 时,也会创建记录器。
在 LoggerContext 中,它将获取创建的记录器实例
getLogger(name, null)
null 是 MessageFactory
因此它将使用旧记录器的 messagefactory 检查 null
并打印出此警告。好像还可以。
这是 Log4j 2.6 版本中的错误。它已被修复(参见 https://issues.apache.org/jira/browse/LOG4J2-1407)并将在即将发布的 2.6.1 版本中修复(现在正在审核中,应该会在 48 小时内上线)。
这不是真正的问题,错误是不必要地显示了警告。
升级到 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版本没问题,有意见吗?!
我在附加程序中看到日志消息
主要是因为记录器是作为实例对象创建的,而不是静态对象,如下所示:
public class PropertiesConfigurationFactory {
private final Log logger = LogFactory.getLog(getClass());
}
再次创建 PropertiesConfigurationFactory 时,也会创建记录器。
在 LoggerContext 中,它将获取创建的记录器实例
getLogger(name, null)
null 是 MessageFactory
因此它将使用旧记录器的 messagefactory 检查 null 并打印出此警告。好像还可以。
这是 Log4j 2.6 版本中的错误。它已被修复(参见 https://issues.apache.org/jira/browse/LOG4J2-1407)并将在即将发布的 2.6.1 版本中修复(现在正在审核中,应该会在 48 小时内上线)。
这不是真正的问题,错误是不必要地显示了警告。