无论是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
等占位符
答案 0 :(得分:7)
slf4j。见http://www.slf4j.org/apidocs/org/slf4j/Logger.html。这是slf4j优于log4j的主要优势之一(对我而言)。它避免了在任何地方都需要isDebugEnabled()
。
编辑:
slf4j documentation解释了为什么它不使用JDK的标准格式:
SLF4J使用自己的消息格式实现,这种实现有所不同 来自Java平台。这是合理的事实 SLF4J的实施速度提高了约10倍,但代价是成本 非标准且不灵活。