Log.isDebugEnabled()使用场景

Posted luceion

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Log.isDebugEnabled()使用场景相关的知识,希望对你有一定的参考价值。

  

  由于代码中部分日志想只在Debug模式下才打印出来,如果是Info模式就会显得太多了。所以很自然的就想到直接LOG.debug(……)。但是看到了以前一个大牛的代码,发现打印debug的时候都加了一层判断,就是Log.isDebugEnabled(),看着很奇怪,既然已经是Debug模式,为什么还需要加这么一层判断呢??

  自己搜索了一下,原来这个问题别人也注意过,给出了这样的回答,就是当要打印的debug信息比较复杂,比如我的就是,要把整个List打印出来,这时候就适合加Log.isDebugEnabled()判断,原因如果不加,LOG还是会构造里面的串,如果比较复杂,构造了却不打印,很浪费。所以这个时候最好加一层判断。

  当然,如果里面就是一个简单的字符串,还是可以直接LOG.debug(……)而不需加判断的。

  最后,记住这种使用模式:

if (LOG.isDebugEnabled()) {
    LOG.debug("Input Object/List/Map:" + Object/List/Map);
}

  

以上是关于Log.isDebugEnabled()使用场景的主要内容,如果未能解决你的问题,请参考以下文章

没有调试日志代码保护的apache.commons.logging.log性能

Mybatis中在关闭连接之前为什么要设置自动提交为true?

HadoopRPC在client端的源码解析

浏览器浏览器存储&缓存 - Cookie - localStorage - sessionStorage - IndexDB - Cache Storage - Application C(代

链购系统开发

不同场景,this 的指向问题汇总