出于好奇 - 为什么不记录API实现printf() - 就像记录方法一样?

时间:2011-12-26 12:27:46

标签: java logging

无论是java.util.logging,commons-logging,log4j,还是最新的slf4j和logback,这些API都没有提出方法,例如:

void debug(String format, Object... args);

其中format是使用Formatter解析的字符串。相反,他们坚持使用MessageFormat

我知道它会与现有的原型发生冲突,所以为什么不debugf()之类的,但为什么不存在Formatter与Java 1.5一样旧的方法呢?

是出于性能原因,向后兼容性......?

(请注意,我真的正在谈论Formatter,即包括%s%02x等占位符

1 个答案:

答案 0 :(得分:7)

slf4j。见http://www.slf4j.org/apidocs/org/slf4j/Logger.html。这是slf4j优于log4j的主要优势之一(对我而言)。它避免了在任何地方都需要isDebugEnabled()

编辑:

slf4j documentation解释了为什么它不使用JDK的标准格式:

  

SLF4J使用自己的消息格式实现,这种实现有所不同   来自Java平台。这是合理的事实   SLF4J的实施速度提高了约10倍,但代价是成本   非标准且不灵活。