log4j初始化和slf4j
1Log4j是什麼
Log4j是Apache比較優秀的開源專案。在各個平臺和專案中有較為廣泛的應用,是為JAVA平臺開發的日誌管理平臺。同時,Log4j也是JAVA開發專案中使用比較普遍的日誌管理框架,
經過綜合評估,無論穩定性,還是功能性,都能符合本次專案開發的需求,因此,本次專案決定採用Log4j作為專案的日誌開發框架。
2Log4j的組成包括:
由專案的JAR包和配置檔案組成。-
log4j-1.2.15.jar(專案JAR包)。這個是本專案使用的版本,具體專案可以根據需要在上面的官方連結下載最新版本。
-
Log4j的配置檔案:包括文字格式鍵值對組合的log4j.properties
要讓配置檔案生效,需要在應用程式啟動時載入配置檔案到JVM中。配置檔案的載入方法有3種:自動載入、手動載入和預設配置載入。下面分別介紹和討論。
1)自動載入方式:只要把配置檔案放在CLASSPATH環境變數所指定的目錄,JAVA啟動時會制動載入。
2)手動載入方式:如果不是包含在CLASSPATH中預設載入,而是在自定義的專案配置檔案目錄下,如config,手工載入,那麼,這兩種檔案在載入上有區別。
鍵值對格式,需要使用PropertyConfigurator.config(filepath)載入。
XML格式,需要使用DOMConfigurator.config(filepath)
在Eclipse RCP程式中,載入XML的示例如下:
URLurl= Platform.getBundle("PluginName").getEntry("config/log4j.xml");
Stringpath= FileLocator.resolve(url).getPath();
DOMConfigurator.configure(path);
3)除了以上的二種載入方法之外,還有一種載入方式是不用配置檔案的,程式碼如下:
BasicConfigurator.configure();
通過以上的方法呼叫,可以自動快速地使用預設
SLF4J
SLF4J不是具體的日誌解決方案,它只服務於各種各樣的日誌系統。按照官方的說法,SLF4J是一個用於日誌系統的簡單Facade,允許終端使用者在部署其應用時使用 其所希望的日誌系統。
實際上,SLF4J所提供的核心API是一些介面以及一個LoggerFactory的工廠類。從某種程度上,SLF4J有點類似JDBC,不過比JDBC更簡單,在JDBC中,你需要指 定驅動程式,而在使用SLF4J的時候,不需要在程式碼中或配置檔案中指定你打算使用那個具體的日誌系統。如同使用JDBC基本不用考慮具體資料庫一樣,SLF4J提供了 統一的記錄日誌的介面,只要按照其提供的方法記錄即可,最終日誌的格式、記錄級別、輸出方式等通過具體日誌系統的配置來實現,因此可以在應用中 靈活切換日誌系統。
假設使用log4j做為底層日誌工具,執行以上程式需要三個包:log4j-1.2.xx.jar、slf4j-api-x.x.x.jar、以及slf4j-log4j12-x.x.x.jar,後兩個包由slf4j提供,包名中的x表示版本號