java - 是否需要进行 if(log.isDebugEnabled()) { ... } 检查?

标签 java if-statement log4j logging

是否需要进行明确的 if(log.isDebugEnabled()) { ... } 检查?

我的意思是我看到一些帖子提到 log.debug("something") 在进行日志记录之前会进行隐式调用以查看是否已启用 Debug模式日志记录。我是否遗漏了什么,或者在使用它之前是否需要执行中间步骤?

谢谢!

log.debug("ResultSet rs is retrieved from OracleTypes");

对比

if(log.isDebugEnabled()){
     log.debug("ResultSet rs is retrieved from OracleTypes");
}

编辑: 写过这个: http://java.sg/whether-to-do-a-isdebugenabled-checking-before-printing-out-your-log-statement/

最佳答案

声明:

if(log.isDebugEnabled()){

仅出于性能原因使用。它的使用是可选的,因为它是由内部的 log 方法调用的。

但是现在你问这个检查是否是内部进行的,那我为什么要使用它呢? 这很简单:如果您记录这样简单的内容:

log.debug("ResultSet rs is retrieved from OracleTypes");

那么你不需要做任何检查。如果您像这样使用附加运算符 (+) 编写要记录的字符串:

log.debug("[" + System.getTimeInMillis() + "] ResultSet rs is retrieved from OracleTypes");

在这种情况下,您应该检查是否启用了日志,因为如果没有,即使没有创建日志,字符串组合也是。而且我必须提醒你,使用运算符“+”来连接字符串是非常低效的。

关于java - 是否需要进行 if(log.isDebugEnabled()) { ... } 检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6504407/

相关文章:

java - 使用数据库中的数据创建图形的 GWT 可视化问题

java - 从 Android 设备录制音频

javascript - 如果输入字段为空并且用户使用空白输入按回车键,我只想打印一次消息。我哪里出错了

excel - 如何创建 "if x ≥ then multiply by y"等的公式?

java - Grails 2.0 为自己的类设置日志记录

java - 需要在 java 的 log4j 之前将参数附加到每个日志

java - 使用 JFrame 创建颜色网格?

java - Android 按钮返回 null

javascript - 如果在 vue.js 中使用来自 json 的值的 else 语句

java - 如何使用 log4j2 Commons Logging Bridge