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
广告