Hibernate 如何集成 log4j?

文章导读
Previous Quiz Next Log4j 是一个完全用 Java 编写的日志记录框架。它是 Apache Software Foundation 的一个开源项目。
📋 目录
  1. log4j 的不同日志级别
  2. 使用 log4j.xml 进行配置
  3. 使用 log4j.properties 进行配置
A A

Hibernate - log4j 集成



Previous
Quiz
Next

Log4j 是一个完全用 Java 编写的日志记录框架。它是 Apache Software Foundation 的一个开源项目。

要使用 Log4j,您需要将 log4j library 添加到项目的 CLASSPATH 中。然后需要设置一个配置文件,该文件可以是以下之一 −

  • 名为 log4j.xmlXML 文件

  • 名为 log4j.propertiesproperties 文件

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