打印日志时为什么要使用isDebugEnabled 、isInfoEnabled
来源:互联网 发布:js修改input type属性 编辑:程序博客网 时间:2024/06/07 00:09
isDebugEnabled 、isInfoEnabled 为什么要使用
以前一直不明白为什么在输出日志前必须使用:
if (log.isDebugEnabled())???
在看下面的解释之前,我先说明下,对于打印的信息没有字符拼接或者对象(说白了没有tostring的方法调用),如果打印的信息是固定字符串的话,就加上面的判断和不加其实意义是一样的(更说白了,就是节省log.debug(***)中***部分向字符串的装换。下面是一位网友写的,他说明了比较纤细,我摘录了给大家看看
log4j中isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled的封装
分类: Java语言2010-01-05 13:30 435人阅读 评论(0) 收藏 举报
log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
项目在应用log4j打印Debug,Info和Trace级别的log时需要加上对应的三个方法进行过滤,代码如下:
if (log.isDebugEnabled()) {
log.debug(" From: " + req.getFrom().toString() +
" To: " + req.getTo().toString() +
" CallId: " + req.getCallId() +
" msg:" + msg);
}
其作用是因为Debug,Info和Trace一般会打印比较详细的信息,而且打印的次数较多,如果我们不加log.isDebugEnabled()等
进行预先判断,当系统loglevel设置高于Debug或Info或Trace时,虽然系统不会答应出这些级别的日志,但是每次还是会拼接
参数字符串,影响系统的性能。
2.错误的优化方法
部分编码人员因为不了解机制,从代码复用性和简洁性而言定义如下函数来封装
private void debug(String msg) {
if (log.isDebugEnabled()) {
log.debug(msg);
}
}
其实这种封装方式是错误的,因为当系统中调用debug(msg)函数还是出现字符串的拼接
以前一直不明白为什么在输出日志前必须使用:
if (log.isDebugEnabled())???
在看下面的解释之前,我先说明下,对于打印的信息没有字符拼接或者对象(说白了没有tostring的方法调用),如果打印的信息是固定字符串的话,就加上面的判断和不加其实意义是一样的(更说白了,就是节省log.debug(***)中***部分向字符串的装换。下面是一位网友写的,他说明了比较纤细,我摘录了给大家看看
log4j中isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled的封装
分类: Java语言2010-01-05 13:30 435人阅读 评论(0) 收藏 举报
log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
项目在应用log4j打印Debug,Info和Trace级别的log时需要加上对应的三个方法进行过滤,代码如下:
if (log.isDebugEnabled()) {
log.debug(" From: " + req.getFrom().toString() +
" To: " + req.getTo().toString() +
" CallId: " + req.getCallId() +
" msg:" + msg);
}
其作用是因为Debug,Info和Trace一般会打印比较详细的信息,而且打印的次数较多,如果我们不加log.isDebugEnabled()等
进行预先判断,当系统loglevel设置高于Debug或Info或Trace时,虽然系统不会答应出这些级别的日志,但是每次还是会拼接
参数字符串,影响系统的性能。
2.错误的优化方法
部分编码人员因为不了解机制,从代码复用性和简洁性而言定义如下函数来封装
private void debug(String msg) {
if (log.isDebugEnabled()) {
log.debug(msg);
}
}
其实这种封装方式是错误的,因为当系统中调用debug(msg)函数还是出现字符串的拼接
0 0
- 打印日志时为什么要使用isDebugEnabled 、isInfoEnabled
- isDebugEnabled 、isInfoEnabled 为啥要使用
- isDebugEnabled 、isInfoEnabled 为啥要使用
- 使用Log4j时,为什么要写if (log.isDebugEnabled()) 或 if (log.isInfoEnabled())
- 使用Log4j时,为什么要写if (log.isDebugEnabled()) 或 if (log.isInfoEnabled())
- 使用Log4j时,为什么要写if (log.isDebugEnabled()) 或 if (log.isInfoEnabled())
- 使用Log4j时,为什么要写if (log.isDebugEnabled()) 或 if (log.isInfoEnabled())
- 使用Log4j时,为什么要写if (log.isDebugEnabled()) 或 if (log.isInfoEnabled())
- 为什么要使用log4j isDebugEnabled
- 为什么使用logger.isInfoEnabled()
- 使用log4j时,为什么要写if (log.isDebugEnabled())
- logger.isDebugEnabled和logger.isInfoEnabled的作用
- logger.isDebugEnabled和logger.isInfoEnabled的作用
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- log4j中isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled的封装
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- log4j-logger.isDebugEnabled和logger.isInfoEnabled的作用
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- HelloWorld,今天开始玩Wordpress了
- Java开发者值得关注的7款新工具
- 别以为有了Kindle就不用买纸质书了>_<
- androidannotations 的简单使用
- 上海最专业的食堂承包商-蓝潮餐饮
- 打印日志时为什么要使用isDebugEnabled 、isInfoEnabled
- 市场部 业务部 销售部 区别
- Java 多线程(四) 多线程访问成员变量与局部变量
- 数组名a和&a初认识
- Word2003Xml格式摸索 2
- Android 沉浸式状态栏
- 如何绘制程序流程图
- 第十三周项目六——体验文件操作(4-实战)
- 第13周上机实践项目1——数组大折腾(4~5)