Chinaunix首页 | 论坛 | 博客
  • 博客访问: 529781
  • 博文数量: 135
  • 博客积分: 3568
  • 博客等级: 中校
  • 技术积分: 1942
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-19 17:52
文章分类

全部博文(135)

文章存档

2012年(29)

2011年(41)

2010年(26)

2009年(12)

2008年(9)

2007年(12)

2006年(6)

分类: Java

2009-07-09 10:22:49

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仅仅是输出一个简单的基本数据类型的话,效率问题可以忽略。但是,为了简单,还是一律+上的好!
阅读(904) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~