1. 程式人生 > >Spring整合log4j日誌管理

Spring整合log4j日誌管理

在使用Spring框架的時候,我們可以很方便的配置log4j來進行日誌管理。

進行配置之前,首先得下載jar包(log4j-1.2.11.jar)

配置如下:

1.在web.xml中最上面加入如下配置程式碼:

[html] view plaincopyprint?
  1. <!--log4j配置檔案載入-->
  2. <context-param>
  3. <param-name>log4jConfigLocation</param-name>
  4. <param-value>/WEB-INF/log4j.properties</param-value>
  5. </
    context-param>
  6. <!--啟動一個watchdog執行緒每1800秒掃描一下log4j配置檔案的變化-->
  7. <context-param>
  8. <param-name>log4jRefreshInterval</param-name>
  9. <param-value>1800000</param-value>
  10. </context-param>
  11. <!--spring log4j監聽器-->
  12. <listener>
  13. <listener-class>org.springframework.web.util.Log4jConfigListener
    </listener-class>
  14. </listener>
 <!--log4j配置檔案載入-->
    <context-param>    
        <param-name>log4jConfigLocation</param-name>    
        <param-value>/WEB-INF/log4j.properties</param-value>    
    </context-param>
    <!--啟動一個watchdog執行緒每1800秒掃描一下log4j配置檔案的變化-->
    <context-param>    
        <param-name>log4jRefreshInterval</param-name>    
        <param-value>1800000</param-value>    
    </context-param> 
    <!--spring log4j監聽器-->
    <listener>    
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>    
    </listener>


2.把log4j.properties配置檔案放在上面配置的指定的目錄下

log4j.properties配置檔案:

[plain] view plaincopyprint?
  1. ######################################  
  2. #         log4j配置相關說明  
  3. ######################################  
  4. #%p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL   
  5. #%r 輸出自應用啟動到輸出該log資訊耗費的毫秒數   
  6. #%c 輸出所屬的類目,通常就是所在類的全名   
  7. #%t 輸出產生該日誌事件的執行緒名  
  8. #%m 輸出程式碼中指定的資訊   
  9. #%n 輸出一個回車換行符,Windows平臺為“\r\n”,Unix平臺為“\n”   
  10. #%d 輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,比如:%d{yyyy MM dd HH:mm:ss,SSS},輸出類似: 2002年10月18日 22:10:28,921   
  11. #%l 輸出日誌事件的發生位置,包括類目名、發生的執行緒,以及在程式碼中的行數。舉例:Testlog4.main(TestLog4.java:10)   
  12. #log4j提供4種佈局:   
  13. #org.apache.log4j.HTMLLayout(以HTML表格形式佈局)  
  14. #org.apache.log4j.PatternLayout(可以靈活地指定佈局模式),  
  15. #org.apache.log4j.SimpleLayout(包含日誌資訊的級別和資訊字串),  
  16. #org.apache.log4j.TTCCLayout(包含日誌產生的時間、執行緒、類別等等資訊  
  17. #log4j中有五級logger 輸出級別:  
  18. #FATAL 0   
  19. #ERROR 3   
  20. #WARN 4   
  21. #INFO 6   
  22. #DEBUG 7  
  23. ######################################  
  24. #          log4j相關配置  
  25. ######################################  
  26. #日誌輸出級別  
  27. log4j.rootLogger=INFO,stdout,other  
  28. #設定stdout的日誌輸出控制檯  
  29. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  30. #輸出日誌到控制檯的方式,預設為System.out  
  31. log4j.appender.stdout.Target = System.out  
  32. #設定使用靈活佈局  
  33. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  34. #靈活定義輸出格式  
  35. log4j.appender.stdout.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %m %n    
  36. #設定other的日誌輸出控制檯  
  37. log4j.appender.other=org.apache.log4j.RollingFileAppender  
  38. #設定other的輸出日誌  
  39. log4j.appender.other.File=${webapp.root}/WEB-INF/logs/log.log  
  40. #設定other的日誌最大限制  
  41. log4j.appender.other.MaxFileSize=1024KB  
  42. #最多隻儲存20個備份檔案  
  43. log4j.appender.other.MaxBackupIndex=1000  
  44. #輸出INFO級別以上的日誌  
  45. og4j.appender.other.Threshold=INFO   
  46. #設定使用靈活佈局  
  47. log4j.appender.other.layout=org.apache.log4j.PatternLayout  
  48. #靈活定義輸出格式  
  49. log4j.appender.other.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %t %m %n    
  50. ######################################  
  51. #       hibernate相關配置  
  52. ######################################  
  53. #輸出hibernate除錯過程中的錯誤日誌  
  54. log4j.logger.org.hibernate=other  
  55. #輸出HQL查詢除錯日誌  
  56. log4j.logger.org.hibernate.hql.ast.AST=other  
  57. #輸出SQL語句除錯日誌  
  58. log4j.logger.org.hibernate.SQL=other  
  59. #輸出 JDBC引數查詢的日誌  
  60. log4j.logger.org.hibernate.type=other  
  61. #輸出快取日誌   
  62. log4j.logger.org.hibernate.cache=other  
  63. #輸出事務日誌  
  64. log4j.logger.org.hibernate.transaction=other  
  65. #輸出獲取JDBC資源日誌  
  66. log4j.logger.org.hibernate.jdbc=other