2

是否可以在 logback 中使用 MessageFormat ?

我看到它使用 slf4j MessageFormat ter,因为它比这里所说的更快: 出于好奇——为什么日志 API 不实现类似 printf() 的日志方法?

SLF4J 使用自己的消息格式化实现,这与 Java 平台的不同。这是合理的,因为 SLF4J 的实现速度提高了大约 10 倍,但代价是非标准和不灵活。

来自 sf4j 文档

想法是像这样使用 MessageFormat 的完整堆栈功能:

 Object[] arguments = {
     new Integer(7),
     new Date(System.currentTimeMillis()),
     "a disturbance in the Force"
 };

 String result = MessageFormat.format(
     "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
     arguments);

 output: At 12:30 PM on Jul 3, 2053, there was a disturbance
           in the Force on planet 7.

任何人 ?

4

2 回答 2

0

我想你回答了你自己的问题......基本上这是一个性能问题。如果 slf4j 实现被迫查找和解析参数化......那么......似乎没有人希望在日志系统中拥有的开销。

于 2013-06-25T23:51:01.030 回答
0

Log4j 2 支持 slf4j 格式、MessageFormat 和 String.format 语法,以及支持一组 printf 方法。

于 2016-01-13T05:28:01.607 回答