小编典典

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

java

是否需要进行显式的if(log.isDebugEnabled()){…}检查?

我的意思是,我已经看到一些帖子提到log.debug(“something”)进行隐式调用,以查看调试模式日志记录是否已启用,然后再进行日志记录。我是否缺少某些东西,或者在使用此步骤之前有中间步骤要执行?

谢谢!

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/


阅读 492

收藏
2020-09-18

共1个答案

小编典典

该声明:

if(log.isDebugEnabled()){

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

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

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

然后,您无需进行任何检查。如果您使用如下所示的附加运算符(+)编写要记录的字符串:

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

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

2020-09-18