一、JDK Logging
Java標準庫內置了日誌包java.util.logging
使用日誌最大的好處是,它自動打印了時間、調用類、調用方法等很多有用的信息。
注意:4條日誌,只打印了3條,logger.fine()
沒有打印。這是因爲,日誌的輸出可以設定級別。
JDK的Logging定義了7個日誌級別,從嚴重到普通:
- SEVERE
- WARNING
- INFO
- CONFIG
- FINE
- FINER
- FINEST
因爲默認級別是INFO,因此,INFO級別以下的日誌,不會被打印出來。使用日誌級別的好處在於,調整級別,就可以屏蔽掉很多調試相關的日誌輸出。
使用Java標準庫內置的Logging有以下侷限:
Logging系統在JVM啓動時讀取配置文件並完成初始化,一旦開始運行main()
方法,就無法修改配置;
配置不太方便,需要在JVM啓動時傳遞參數-Djava.util.logging.config.file=<config-file-name>
。
二、Commons Logging
Jakarta Commons-logging(JCL)是apache最早提供的日誌的門面接口。提供簡單的日誌實現以及日誌解耦功能。 JCL能夠選擇使用Log4j(或其他如slf4j等)還是JDK Logging,但是他不依賴Log4j,JDK Logging的API。
Commons Logging定義了6個日誌級別:
- FATAL
- ERROR
- WARNING
- INFO
- DEBUG
- TRACE
默認級別是INFO
。