logger.isDebugEnabled()的作用
来源:互联网 发布:睡觉流口水 知乎 编辑:程序博客网 时间:2024/05/22 20:54
在项目中经常会看到这样的代码:
if (logger.isDebugEnabled()) { logger.debug(message);}
为什么要这样做呢?
且看isDebugEnabled()的源码:
public boolean isDebugEnabled() { if(repository.isDisabled( Level.DEBUG_INT)) return false; return Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel());}
以下是debug()的源码:
public void debug(Object message) { if(repository.isDisabled(Level.DEBUG_INT)) return; if(Level.DEBUG.isGreaterOrEqual(this.getEffectiveLevel())) { forcedLog(FQCN, Level.DEBUG, message, null); }}
可见,debug()中做了跟isDebugEnabled()几乎一样的判断,看起来直接调用debug()比先判断isDebugEnabled()更加效率。
此时来看下面的代码: logger.debug("The money is " + getTotalMoney());
假设我们的日志级别设置为info,debug()方法调用后会判断if(repository.isDisabled(Level.DEBUG_INT))
,然后return。但是在调用debug()方法时,必须提供参数。要获得参数,就需要执行getTotalMoney()并拼接。假设这个获取参数的过程需要10秒钟,则系统会在花费10秒后决定return,这显然很得不偿失。
加上logger.isDebugEnabled()判断,只会使写日志的时间增加大概万分之一,但是如果不加此判断,系统可能需要花费更多的时间,所以在大多数情况下,在输出debug日志前加上logger.isDebugEnabled()比较好。
参考文献:http://zhukewen-java.iteye.com/blog/1174017
本人研究较浅,思维也不够严谨,文章主要用于自己存档和供新手们了解。若您发现有什么问题,欢迎评论指正,谢谢!
0 0
- logger.isDebugEnabled()的作用
- logger.isDebugEnabled和logger.isInfoEnabled的作用
- logger.isDebugEnabled和logger.isInfoEnabled的作用
- log4j-logger.isDebugEnabled和logger.isInfoEnabled的作用
- logger.isDebugEnabled()
- log4j的isDebugEnabled的作用
- Log4j的isdebugEnabled的作用
- Log4j的isdebugEnabled的作用
- 姚博文 logger.isDebugEnabled()
- isDebugEnabled作用
- isDebugEnabled作用
- Log4j的isdebugEnabled的作用 从isdebugEnabled使用 思考项目中代码的效率
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- logger.debug,logger.info,logger.warn,logger.error,logger.fatal的区别
- logger.debug,logger.info,logger.warn,logger.error,logger.fatal的区别
- logger.debug,logger.info,logger.warn,logger.error,logger.fatal的区别
- uboot分析一
- VMware下基于RHEL_6.0虚拟机的samba服务器安装
- java实现获取鼠标在屏幕上的坐标
- blog书写专栏,how
- Linux常用文件操作命令
- logger.isDebugEnabled()的作用
- zStack 扩展开发流程-zstack-java部分
- python-正则表达式 匹配多个字符串的语法规则
- BOOST 线程完全攻略 - 基础篇 .
- oracle一些常用函数用法
- Android四大动画详解
- File操作 - list()/listFiles()
- exlipse第一次如何导入JAVA项目,并运行
- gridview的属性