由于代码中部分日志想只在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); }
时间: 2024-11-05 11:00:57