- Log4j debug log api不夠豐富
在進入,退出方法時針對方法的輸入參數和返回值進行l(wèi)og,log中含有方法信息
logDebugOnMethodEntry, logDebugOnMethodExit
- log級別問題
如果log級別設置的是info,會把warning,error,fatal都打出來,各個級別不能單獨控制。增加各級別分開控制開關。
- log格式的定制
可以定制log信息的pattern,這樣會看起來很統(tǒng)一,log分析起來也容易logDebug(String pattern, Object... paramValues);
還有一個好處,不需要預先把相關String都append起來,提高performance
- log.isDebugEnabled();
參考第三點,這樣就避免了Object的toString和String的concat操作。
- EmptyLogger
每次記log時,log4j都需要判斷這個級別是否可以打log。如果logger的每個級別都有對應的logger實例,如果debug level被關了,debug級別對應的實例就是EmptyLogger,EmptyLogger里面所有方法的實現都是空的,就不需要這額外的判斷了。