Hibernate - log4j 集成
Log4j 是一个完全用 Java 编写的日志记录框架。它是 Apache Software Foundation 的一个开源项目。
要使用 Log4j,您需要将 log4j library 添加到项目的 CLASSPATH 中。然后需要设置一个配置文件,该文件可以是以下之一 −
名为 log4j.xml 的 XML 文件
名为 log4j.properties 的 properties 文件
log4j 的不同日志级别
以下是 log4j framework 支持的日志级别列表。
| 序号 | 级别 & 描述 |
|---|---|
| 1 | ALL 最高的 Debug 级别。输出所有可能的内容。 |
| 2 | DEBUG 记录用于调试的详细信息。 |
| 3 | INFO 记录突出应用程序高级进度信息的消息。 |
| 4 | WARN 记录潜在有害但不一定是错误的情况。 |
| 5 | ERROR 指定可能仍允许应用程序继续运行的错误事件。 |
| 6 | FATAL 指定可能导致应用程序中止的非常严重的错误事件。 |
| 7 | OFF 禁用日志记录。用于完全关闭日志记录。 |
| 8 | TRACE 指定比 DEBUG 更细粒度的信息事件。 |
使用 log4j.xml 进行配置
对于 XML 文件配置,您需要在 CLASSPATH 中包含 log4j.jar。请记住将 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>
在此配置中,debug messages 将输出到控制台(因为有 ConsoleAppender)以及文件(因为有 FileAppender),文件位于 C:/hibernate-log4j.log。您可以根据需要更改文件名,但扩展名必须是 log。
使用 log4j.properties 进行配置
类似于 XML 文件,log4j.properties 文件必须放在 src/ 文件夹下(与 hibernate.cfg.xml 相同)。
log4j.properties
#Definetherootloggerwithappenderfile
log4j.rootLogger=DEBUG,FILE, stdout
#Output logmessagesto 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
#Outputlogmessagestostdout
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-ddHH: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