|
第一節(jié) 概述
Log4j誕生,為減輕對成千上萬的
(e為Throwable,包括Exception和Error) 語句的維護成本。 Log4j能夠做更多的事。 通過僅修改配置文件,而不修改程序代碼,控制日志記錄語句是否記錄日志,控制系統(tǒng)資源消耗。 本手冊代碼演示在eclipse中編輯。 第二節(jié) 簡單使用Logger類 選一個新的workspace, 創(chuàng)建一個新的項目。 導入org.apache.log4j,編寫一個示例類,用上Logger類的日志記錄方法。 LoggerSnippet.java
說明: 1、使用時,Logger是通過工廠方法獲得的。不通過new 創(chuàng)建出來的。(思考,為什么要通過工廠方法) 2、獲得Logger的工廠方法的參數(shù),一般為調(diào)用類的class。工廠方法使用類的類名,標示這個Logger。(思考,為什么要傳入這個參數(shù),可以傳入其他嗎) 3、Logger默認的日志級別分6級,trace、debug、info、warn、error、fatal。(log4j_1.2.12新添了trace在debug之下,之前為5個等級)。 第三節(jié) 簡單配置log4j,讓log4j工作 執(zhí)行上面的類,控制臺顯示如下信息。 log4j:WARN No appenders could be found for logger (org.smiledsun.snippets.logger.LoggerSnippet). log4j:WARN Please initialize the log4j system properly. 原因:沒有加載log4j配置文件。 解決方法,在任意位置,編寫如下內(nèi)容的log4j.xml文件(文件名自定)。
再在執(zhí)行你的應用程序時,配置虛擬機參數(shù)log4j.configuration為你的log4j.xml文件的URL路徑。 場景1:在命令行中執(zhí)行程序,配置log4j配置文件。 java -Dlog4j.configuration=File:D:\log4j.xml LoggerSnippet 場景2:在Eclipse中執(zhí)行程序,配置log4j配置文件。 點擊主菜單的“Run”->“Run Configurations”彈出“Run configurations”對話框,在左邊選中剛剛運行過的“LoggerSnippet”,在右邊找到“Arguments”中的“VM arguments:”輸入“-Dlog4j.configuration=File:D:\log4j.xml”如附件 log4j_run_configurations_vm_arguments.png 場景3:在導出后的eclipse RCP應用程序中,配置log4j配置文件。 打開在eclipse.exe同目錄下的eclipse.ini文件(沒有則新建一個),添加一行內(nèi)容 “-Dlog4j.configuration=File:D:\log4j.xml” 補充知識: 1、通過命名行執(zhí)行java程序的格式如下:java 虛擬機參數(shù) 類名 程序參數(shù)。 2、-D是java設置系統(tǒng)屬性的專有前綴。 可以通過System.getProperty(String key)獲得。 3、File是文件協(xié)議類型的URL前綴。URL除了http協(xié)議類型,還有其他類型。 4、這里的D:log4j.xml可以是絕對URL路徑,也可以是相對URL路徑。 5、如果你只是在eclipse中執(zhí)行你的應用程序,則可以在src目錄下創(chuàng)建一個名為log4j.xml的文件。就不需要這些配置。 6、為什么是這樣?想了解詳細信息。 請閱讀log4j源碼,org.apache.log4j.LogManager.java文件。 再執(zhí)行上面的類。控制臺打印如下結果。 DEBUG - This is a debug message INFO - This is an info message WARN - This is a warn message ERROR - This is an error message FATAL - This is a fatal message (注意:沒有打?。?This is a trace message.",為什么呢?) 好了。我們的Log4j開始工作了。 第四節(jié) Logger記錄日志的方法
第五節(jié) 配置文件 Log4j配置文件可以是.xml或.properties文件。老的版本只支持.properties。推介使用.xml文件,因為.xml文件結構更清晰、可讀性更高,新版本的部分特性.properties文件已經(jīng)不能配置或難配置了。 log4j默認從系統(tǒng)屬性中的log4j.configuration獲取log4j配置文件的url,找不到就從classpath中找 log4j.xml文件為配置文件,找不到就從classpath中找 log4j.properties配置文件。如果找不到,就打印上面的出錯信息。詳情見log4j源 碼,org.apache.log4j.LogManager.java文件。 詳情參考本人日志: Log4j筆記 第一章 簡單用上Log4j 可以通過編程的方法加載外部配置文件:使用 org.apache.log4j.PropertyConfigurator類的configure()方法。支持文件路徑名,URL,Properties等多種形式。 在找不到配置文件時,也可以Logger.getRootLogger().setLevel(Level.OFF);關閉日志。 |
|
|
來自: LibraryPKU > 《Java》