出于好奇 -- 为什么日志记录 API 不实现类似 printf() 的日志记录方法?



是否为java.util。logging、common -logging、log4j,甚至是最新的slf4j和logback,这些api都没有提供如下方法:

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

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

我知道它会与现有的原型冲突,所以为什么不是debugf()或类似的,但是为什么没有任何这样的方法给定Formatter和Java 1.5一样老?

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

?

(注意,我真的是谈论Formatter,即包括占位符,如%s, %02x等)

slf4j does。见http://www.slf4j.org/apidocs/org/slf4j/Logger.html。这是slf4j相对于log4j的主要优点之一(对我来说)。它避免了到处都需要isDebugEnabled()

编辑:

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

SLF4J使用自己不同的消息格式化实现从Java平台中分离出来。事实证明这是正确的SLF4J的实现执行速度大约快了10倍,但代价是不标准,不灵活。

最新更新