是否需要进行明确的 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/