当在slf4j后面使用Log4j2时,是否可以使用String.format
的语法格式化日志消息?
似乎标准MessageFactory
为ParameterizedMessageFactory
,仅支持{}
。
答案 0 :(得分:1)
您不能像使用Log4j API那样在每个Logger的基础上更改MessageFactory。但是,您可以通过将log4j2.messageFactory设置为要使用的MessageFactory类名来更改默认的MessageFactory。您可以将其指定为系统属性,也可以在名为log4j2.component.properties的文件中定义该属性,该文件可以在类路径中找到。
我建议你可以考虑使用FormattedMessageFactory,因为它支持String.format模式,MessageFormat模式和ParameterizedMessage模式(尽管不在同一个消息中)。
答案 1 :(得分:0)
如果不访问本机记录器,你就无法做到这一点,但最终会变得混乱而且不是很有用。如果你真的想这样做,请参见this answer。