为了便于调试、查看生成的SQL,因此我们需要查看Hibernate自动帮我们生成的SQL语句,Hibernate本身自带了slf4j-1.5.8日志框架(此框架目前好像不是很流行)。访问log4j官方网站http://logging.apache.org/,去下载JAR包。以下为具体配置方法。
1、将在笔记一里的User Libraries打开,删除里面的slf4j实现函数包文件slf4j-nop-1.5.8.jar,然后把slf4j-1.5.8文件夹里的slf4j-log4j12-1.5.8.jar包加进来,此包的作用是将slf4j生成的日志转换成log4j框架的格式,再把apache-log4j-1.2.16文件夹里的log4j-1.2.16.jar包也添加进来(注意包的版本兼容性)。
2、到hibernate-distribution-3.5.6-Final\project\etc目录里找到log4j.properties(此文件为Logo4j的配置文件,内容如下所示)文件,将此文件复制到项目src文件夹里,到此为止,配置完成。
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
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