Posted on 2010-05-27 14:14
leekiang 閱讀(386)
評論(0) 編輯 收藏 所屬分類:
java
1,為什么要寫 if (log.isDebugEnabled())
在使用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這個函數效率不太高的情況下
http://topic.csdn.net/u/20070119/16/e9cf879c-697b-482a-9d55-21bfb7a16216.html