小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Log4j筆記 第一章 簡單用上Log4j

 LibraryPKU 2013-12-11
第一節(jié) 概述
Log4j誕生,為減輕對成千上萬的
Java代碼  收藏代碼
  1. System.out.println();  
  2. System.err.println();  
  3. e.printStackTrace();  

(e為Throwable,包括Exception和Error)
語句的維護成本。

Log4j能夠做更多的事。

通過僅修改配置文件,而不修改程序代碼,控制日志記錄語句是否記錄日志,控制系統(tǒng)資源消耗。

本手冊代碼演示在eclipse中編輯。

第二節(jié) 簡單使用Logger類
選一個新的workspace, 創(chuàng)建一個新的項目。
導入org.apache.log4j,編寫一個示例類,用上Logger類的日志記錄方法。
LoggerSnippet.java
Java代碼  收藏代碼
  1. package org.smiledsun.snippets.logger;  
  2.   
  3. import org.apache.log4j.Logger;  
  4.   
  5. public class LoggerSnippet {  
  6.   
  7.     /** 
  8.      * 使用工廠方法獲得Logger,  
  9.      * Logger不通過new 創(chuàng)建出來的 
  10.      */  
  11.     private static final Logger logger = Logger.getLogger(LoggerSnippet.class);  
  12.   
  13.     public static void main(String[] args) {  
  14.     log.trace("This is a trace message.");  
  15.     log.debug("This is a debug message.");  
  16.     log.info("This is a info message.");  
  17.     log.warn("This is a warn message.");  
  18.     log.error("This is an error message.");  
  19.     log.fatal("This is a fatal message.");  
  20.     }  
  21. }  

說明:
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文件(文件名自定)。
Xml代碼  收藏代碼
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">   
  3. <log4j:configuration xmlns:log4j="http://jakarta./log4j/" >    
  4.     <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">    
  5.         <layout class="org.apache.log4j.PatternLayout"/>    
  6.     </appender>    
  7.     <root >   
  8.         <appender-ref ref="CONSOLE"/>    
  9.     </root>  
  10. </log4j:configuration>  
 
再在執(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記錄日志的方法
Java代碼  收藏代碼
  1. public void trace(Object message)  
  2.     記錄消息message,級別為trace  
  3. public void trace(Object message, Throwable t)  
  4. 記錄消息message和異常/錯誤堆棧信息t,級別為trace  
  5.   
  6. public void debug(Object message)  
  7.     記錄消息message,級別為debug  
  8. public void debug(Object message, Throwable t)  
  9. 記錄消息message和異常/錯誤堆棧信息t,級別為debug  
  10.   
  11. public void info(Object message)  
  12.     記錄消息message,級別為info  
  13. public void info(Object message, Throwable t)  
  14. 記錄消息message和異常/錯誤堆棧信息t,級別為info  
  15.   
  16. public void warn(Object message)  
  17.     記錄消息message,級別為warn  
  18. public void warn(Object message, Throwable t)  
  19. 記錄消息message和異常/錯誤堆棧信息t,級別為warn  
  20.   
  21. public void error(Object message)  
  22.     記錄消息message,級別為error  
  23. public void error(Object message, Throwable t)  
  24. 記錄消息message和異常/錯誤堆棧信息t,級別為error  
  25.   
  26. public void fatal(Object message)  
  27.     記錄消息message,級別為fatal  
  28. public void fatal(Object message, Throwable t)  
  29. 記錄消息message和異常/錯誤堆棧信息t,級別為fatal  
  30.   
  31. public void assertLog(boolean assertion, String msg)     
  32.     如果assertion為false,記錄消息msg,級別為error  



第五節(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);關閉日志。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多