Hibernate學習之——搭建log4j日志環境


  昨天講了Hibernate開發環境的搭建以及實現一個Hibernate的基礎示例,但是你會發現運行輸出只有sql語句,很多輸出信息都看不見。這是因為用到的是slf4j-nop-1.6.1.jar的實現,這是slf4j自己的實現,但用的並不多,但是我們可以使用slf4j的接口對上log4j的實現,當然也可以對上其它的log實現。那么,我就在昨天Hello_World上搭建一個log4j的日志環境。

  

一、SLF4J簡介

  SLJ4F(Simple Logging Facade for Java)簡單日志門面,為各種loging APIs提供一個簡單統一的接口,從而使得最終用戶能夠在部署的時候配置自己希望的loging APIs實現。

  SLF4J 不依賴任何特殊的class loader機制,實際上,SLF4J 和已有日志實現的綁定是在編譯時靜態執行的,具體綁定工作是通過一個jar包實現的,使用時只要把相應的jar包(只有一個)放到類路徑上即可

 

二、log4j搭建環境所需文件

  1、log4j-1.2.17:http://pan.baidu.com/s/1c0hDZG0

  其余資源下載請參見前一篇博客:Hibernate學習之——Hibernate環境搭建

 

三、SLF4J的實現原理

  SLF4J支持多個日志系統,比如NOP, Simple, log4j, JDK 1.4 logging, JCL and logback。那么,SLF4J它的實現原理是什么呢?SLF4J它只提供一個核心slf4j api(就是slf4j-api.jar包),這個包只有日志的接口,並沒有實現,所以如果要使用就得再給它提供一個實現了些接口的日志包,比 如:log4j,common logging,jdk log日志實現包等,但是這些日志實現又不能通過接口直接調用,實現上他們根本就和slf4j-api不一致,因此slf4j又增加了一層來轉換各日志實現包的使 用,當然slf4j-simple、slf4j-nop除外。其結構如下:

實現原理:

  

 

四、slf4j+log4j組合使用模式
  1. slf4j-api-1.6.1.jar 
  2. slf4j-log4j12-1.6.1.jar 
  3. log4j-1.2.17.jar 
  4. log4j.properties(自己在Hibernate的文件夾里搜索即可獲得,對於不需要的輸出只需用#注釋掉即可)
  此處組合模式中jar的版本號須要對應。對於配置完成的項目,里面需要有這三個日志文件jar包

 

 

  log4j.properites配置信息:

 1 ### direct log messages to stdout ###
 2 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 3 log4j.appender.stdout.Target=System.out
 4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
 5 log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
 6 
 7 ### direct messages to file hibernate.log ###
 8 #log4j.appender.file=org.apache.log4j.FileAppender
 9 #log4j.appender.file.File=hibernate.log
10 #log4j.appender.file.layout=org.apache.log4j.PatternLayout
11 #log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
12 
13 ### set log levels - for more verbose logging change 'info' to 'debug' ###
14 
15 log4j.rootLogger=warn, stdout
16 
17 #log4j.logger.org.hibernate=info
18 log4j.logger.org.hibernate=debug
19 
20 ### log HQL query parser activity
21 #log4j.logger.org.hibernate.hql.ast.AST=debug
22 
23 ### log just the SQL
24 #log4j.logger.org.hibernate.SQL=debug
25 
26 ### log JDBC bind parameters ###
27 log4j.logger.org.hibernate.type=info
28 #log4j.logger.org.hibernate.type=debug
29 
30 ### log schema export/update ###
31 log4j.logger.org.hibernate.tool.hbm2ddl=debug
32 
33 ### log HQL parse trees
34 #log4j.logger.org.hibernate.hql=debug
35 
36 ### log cache activity ###
37 #log4j.logger.org.hibernate.cache=debug
38 
39 ### log transaction activity
40 #log4j.logger.org.hibernate.transaction=debug
41 
42 ### log JDBC resource acquisition
43 #log4j.logger.org.hibernate.jdbc=debug
44 
45 ### enable the following line if you want to track down connection ###
46 ### leakages when using DriverManagerConnectionProvider ###
47 #log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

  這樣一個log4j的日志環境已經搭建完成了,如果有不明白的地方,可以下載源碼參考學習。

作者:登天路

轉載請說明出處:http://www.cnblogs.com/travellife/

源碼下載:百度雲盤


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM