如何使用slf4j在Log4j2中使用格式化消息

时间:2016-04-13 14:56:16

标签: java logging slf4j log4j2

当在slf4j后面使用Log4j2时,是否可以使用String.format的语法格式化日志消息?

似乎标准MessageFactoryParameterizedMessageFactory,仅支持{}

2 个答案:

答案 0 :(得分:1)

您不能像使用Log4j API那样在每个Logger的基础上更改MessageFactory。但是,您可以通过将log4j2.messageFactory设置为要使用的MessageFactory类名来更改默认的MessageFactory。您可以将其指定为系统属性,也可以在名为log4j2.component.properties的文件中定义该属性,该文件可以在类路径中找到。

我建议你可以考虑使用FormattedMessageFactory,因为它支持String.format模式,MessageFormat模式和ParameterizedMessage模式(尽管不在同一个消息中)。

答案 1 :(得分:0)

如果不访问本机记录器,你就无法做到这一点,但最终会变得混乱而且不是很有用。如果你真的想这样做,请参见this answer