在使用log4j,common-log这样的log框架时,发现很多代码中这样写
if (log.isDebugEnabled()) {
log.debug( "xxxx ");
}
我很奇怪,为什么要与log.isDebugEnabled()?既然log.debug()在没有指定输出级别为DEBUG时不会有输出,为什么还要在前面加一个isDebugEnabled()的判断?
为了效率,如果上述那个代码那么简单是没有必要的
但是如果这样
if (log.isDebugEnabled()) {
log.debug(buildFullString());
}
如果这个buildFullString效率不太高,那么如果直接写log.debug(buildFullString());的话
虽然它不会打印语句,但是buildFullString还是被执行了,这样就白费了功夫
所以加上isDebugEnabled就可以避免执行buildFullString了
这个方法一般用在认为buildFullString这个函数效率不太高的情况下
加不加if,效果相同,但是效率不同
在你的例子里,debug的参数就是一个string,所以没有太本质的差别
但是假如log.debug( "map= " + map)的话,在调用debug之前,必然需要调用map.toString(),而这个操作可能导致更多的大量字符串操作,最后,才能得到这个辛辛苦苦拼接出来的结果,作为参数传入debug(),结果,这个参数却不需要(一般在log方法入口就判断输出level)。
分享到:
相关推荐
修改了部分功能: ...3.?入注?表的信息也可以?入Install.log 4.卸?的?候根?安?日志Install.log??行卸? 5.根?Install.log的信息??行注?表信息的清除 6.增加一?函?,相?於XCopy的功能,相信?大家很有用的
3.?入注?表的信息也可以?入Install.log 4.卸?的?候根?安?日志Install.log??行卸? 5.根?Install.log的信息??行注?表信息的清除 6.增加一?函?,相?於XCopy的功能,相信?大家很有用的 其??面可更改的?有很多: ...
POLYVLog_log.txt
设置log4j的根目录,值为... log.debug("debug"); log.info("info"); log.warn("warn"); log.error("error"); log.fatal("fatal"); } public static void main(String[] args) { new Main().print(); }
nginx日志测试使用 access.log.zip
Log.isLoggable的使用测试样例
if (error.response?.status === 400) { statusErrorInfo.message = `${error.response?.status}:由于前端所发送的请求中有语法错误,服务器(后)端不能解析该请求或解析请求时产生错误,从而导致服务器(后)端已...
log.error("Class loader creation threw exception", t); System.exit(1); } } private ClassLoader createClassLoader(String name, ClassLoader parent) throws Exception { //CatalinaProperties解析$...
from mongolog.handlers import MongoHandler log = logging.getLogger('demo') log.setLevel(logging.DEBUG) log.addHandler(MongoHandler.to(db='mongolog', collection='log')) log.debug('Some message') ...
applog.txt
解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar解析log.rar...
首先下载log4j.jar,放在WEB-INF/lib下,然后新建一个log4j.properties文件。在文件中配置已下配置项。 1. 配置Logger组件 ...if(log.isDebugEnabled()){ log.debug("==log is enable========"); }
Windows XP Home版装IIS必须要的dll
Android源码,/platform/system/core/include/cutils/log.h
在Android群里,经常会有人问我,Android Log是怎么用的,今天我就把从网上以及SDK里东拼西凑过来,让大家先一睹为快,希望对大家入门Android Log有一定的帮助.android.util.Log常用的方法有以下5个:Log.v() Log....
debug_log.txt
汉化版sys_log.rar 汉化版sys_log.rar 汉化版sys_log.rar
Qualcomm平台开发如何抓取Log.
log.sqllog.sqllog.sqllog.sqllog.sqlv
3000帧动画图解MySQL为什么需要binlog、redo log和undo log.doc