log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
来源:互联网 发布:万网域名转出 编辑:程序博客网 时间:2024/04/28 23:58
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)函数还是出现字符串的拼接。
结论:这3个方法是对对项目的优化方法,加这个方法目的地在于如果代码中存在连接字符串的情况,打印信息时会出现太多的拼接字符串影响系统性能。如果系统中是固定字符串加不加都可以。
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- log4j中isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled的封装
- 使用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 if (log.isDebugEnabled()) { log.debug("xxxx"); }
- log.isDebugEnabled()
- log4j-logger.isDebugEnabled和logger.isInfoEnabled的作用
- 使用log4j时,为什么要写if (log.isDebugEnabled())
- Log4j和Log
- log4j和log
- logger.isDebugEnabled和logger.isInfoEnabled的作用
- logger.isDebugEnabled和logger.isInfoEnabled的作用
- Log 作用
- 数据库的读写分离
- springMVC如何接收和发送json数据对象
- mysql与oracle 表字段定义比较
- dfs求连通块(围棋 poj)
- .htaccess文件·
- log4j中log.isDebugEnabled(), log.isInfoEnabled()和log.isTraceEnabled()作用
- MUI布局简介
- 面试的65个回答技巧-适用于BAT公司
- Retrofit 2.0,RxJava(Android), OkHttp3.3
- bat文件的妙用1-一键开启所有开发软件
- 敏捷开发之Scrum扫盲篇
- 【Opencv】cvCreateTrackbar Error "void (*)(int)"类型的实参与"int"类型的形参不兼容
- hello world python redis
- android studio 标题栏无法隐藏的问题。