Hibernate - log4j 整合



Log4j 是一個完全用 Java 編寫的日誌框架。它是 Apache 軟體基金會的一個開源專案。

為了使用 Log4j,您需要將 log4j 庫放到專案的 CLASSPATH 中。然後,您需要設定一個配置檔案,它可以是以下之一:

  • 名為 log4j.xmlXML 檔案

  • 名為 log4j.properties屬性 檔案

log4j 的不同日誌級別

以下是 log4j 框架支援的日誌級別列表。

序號 級別及描述
1

ALL

最高除錯級別。輸出所有可能的內容。

2

DEBUG

記錄用於除錯的有用詳細資訊。

3

INFO

記錄資訊性訊息,以高層次突出顯示應用程式的進度。

4

WARN

記錄可能存在危害的情況,但不一定是錯誤。

5

ERROR

表示可能仍然允許應用程式繼續執行的錯誤事件。

6

FATAL

表示非常嚴重的錯誤事件,可能導致應用程式中止。

7

OFF

停用日誌記錄。用於完全關閉日誌記錄。

8

TRACE

表示比 DEBUG 更細粒度的資訊事件。

使用 log4j.xml 配置

對於 xml 檔案配置,您需要將 log4j.jar 放到您的 CLASSPATH 中。請記住將 log4j.xml 儲存到與 hibernate.cfg.xml 相同的目錄 (src/) 中。

log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
   <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{MM/dd HH:mm:ss} %-5p
            %30.30c %x - %m\n"/>
      </layout>
   </appender>
   <appender name="FileAppender" class="org.apache.log4j.RollingFileAppender">
      <param name="File" value="C:/hibernate-log4j.log"/>
      <param name="MaxFileSize" value="10MB"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%d{MM/dd HH:mm:ss} %-5p
            %30.30c %x - %m\n"/>
      </layout>
   </appender>
   <root>
      <level value="info"/>
      <appender-ref ref="ConsoleAppender"/>
      <appender-ref ref="FileAppender"/>
   </root>
</log4j:configuration>

在此配置中,除錯訊息將輸出到控制檯(因為使用了“ConsoleAppender”)以及到檔案(因為使用了“FileAppender”)中,檔案路徑為 C:/ > hibernate-log4j.log。您可以根據需要更改檔名,但副檔名必須為 log。

使用 log4j.properties 配置

與 XML 檔案類似,log4j.properties 檔案必須放在 src/ 資料夾下(與 hibernate.cfg.xml 相同)。

log4j.properties

# Define the root logger with appender file  
log4j.rootLogger = DEBUG, FILE, stdout

# Output  log messages to  file  
log4j.appender.file=org.apache.log4j.RollingFileAppender  
log4j.appender.file.File=C:\\hibernate.log  
log4j.appender.file.MaxFileSize=10MB  
log4j.appender.file.layout=org.apache.log4j.PatternLayout  
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L -
 %m%n  

# Output log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Target=System.out  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-
5p %c{1}:%L - %m%n

# Hibernate logging
-------------------------------------------------
# General Hibernate logging
log4j.logger.org.hibernate=INFO 
# Logs all SQL statements generated by Hibernate
log4j.logger.org.hibernate.SQL=DEBUG
廣告