为什么记录器 Java 需要检查 isDebugEnabled()?
Why does a logger Java need check isDebugEnabled()?
为什么 java 记录器需要检查
if (log.isDebugEnabled()) {
log.debug("Debug message");
}
而是直接调用 log.debug("Debug message");
?
没有。通常,当您需要一些额外的代码来记录您想要的内容时,您会调用 log.isDebugEnabled()
:
if (log.isDebugEnabled()) {
for (...) {
// Some heavy logic that is only needed when logging things
log.debug("Debug message");
}
}
这样您就不会在不需要时触发额外的逻辑。
除@1615903的回答外:
您可以配置不同的 levels 日志记录。对于某些环境,您可能希望禁用 DEBUG 级别,日志引擎 (SLF4J) 不会将这些消息放入日志中,但代码 (log.debug("...")
) 仍会执行,这在禁用 DEBUG 级别时完全没有用。使用 isXXXEnabled()
可以避免多余的工作。
为什么 java 记录器需要检查
if (log.isDebugEnabled()) {
log.debug("Debug message");
}
而是直接调用 log.debug("Debug message");
?
没有。通常,当您需要一些额外的代码来记录您想要的内容时,您会调用 log.isDebugEnabled()
:
if (log.isDebugEnabled()) {
for (...) {
// Some heavy logic that is only needed when logging things
log.debug("Debug message");
}
}
这样您就不会在不需要时触发额外的逻辑。
除@1615903的回答外:
您可以配置不同的 levels 日志记录。对于某些环境,您可能希望禁用 DEBUG 级别,日志引擎 (SLF4J) 不会将这些消息放入日志中,但代码 (log.debug("...")
) 仍会执行,这在禁用 DEBUG 级别时完全没有用。使用 isXXXEnabled()
可以避免多余的工作。