if (log.isDebugEnabled()) {
......
log.debug(XXX);
}
如上所示,开发时,突然被要求先判断log的级别后再进行log输出,说是为了效率。有点纳闷:log4j不是可以自动判断log的级别并进行相应的输出么?为何还要在在自己的代码里进行判断呢?
网上搜了下,恍然大悟,请看以下示例:
StringBuffer strBuf = new StringBuilder();
strBuf.append("name : ");
strBuf.append(userObj.getName());
......
log.debug(strBuf.toString());
应该明白了吧,如果事先就判断log级别的话,从StringBuffer的对象创建一直到log的输出都是没有必要的代码。所以,这样就提高代码的效率了。
当然拉,如果log仅仅是输出一个简单的基本数据类型的话,效率问题可以忽略。但是,为了简单,还是一律+上的好!
阅读(913) | 评论(0) | 转发(0) |