java - 为什么要为 logger.debug() 使用额外的 if 条件?

标签 java log4j

<分区>

Possible Duplicate:
In log4j, does checking isDebugEnabled before logging improve performance?

我见过有人以下面的方式使用 log4j:

if(logger.isDebugEnabled())
{
    logger.debug(" message ");
}

但是,我检查了 logger.debug API 的文档,发现它会在记录消息之前检查是否启用了 debug。在那种情况下,写额外的 if 有什么意义?

直接写是不是一模一样

logger.debug(" message ");

?

最佳答案

如果你真的只是在写

logger.debug(" message ");

那就没有好处了。但是请考虑:

logger.debug("This: " + message + " happened on thread " + thread +
            "because " + cause);

如果结果将被丢弃。

如果日志记录在正常情况下对性能有显着影响,那么添加日志记录代码是一种阻碍,而在您突然想要打开诊断的情况下,这可能真正帮助您。

关于java - 为什么要为 logger.debug() 使用额外的 if 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268053/

相关文章:

java - 使用 Saxon 进行 XPath 评估不适用于节点名

java - 使用队列来计算字符串

java - 密码编辑记录器

ftp - java库做FTP操作

Java awt SystemTray - Surface 4 Pro 上的 Popmenu 太小

java - 适用于java中大文本存储和计数的表

java - Log4J - J2EE - 动态变量

java - 为每个创建的线程使用不同的日志文件

tomcat - 忽略 Grails 日志记录配置

java - log4j2 Java 中的动态日志文件名