hibernate目前使用日志框架是slf。
实际上我们可以认为slf是一个日志的框架,我们可以使用各种各样的日志实现,我们可以使用slf自己的日志的实现slf4j nodep,我们也可以用log4j的日志实现,还可以用jdk logging。类似的技术架构还有JPA,JDBC。
slf自己的实现slf4j nodep本身并不太流行,因此我把slf自己的实现slf4j换成log4j的实现。
第一步:将下面2个jar包拷贝到lib目录下
slf4j-log412-1.5.8.jar 将slf接口转换成log4j的接口,使用了“适配器”设计模式
log4j.jar log4j的日志框架
第二步:大家知道如果使用log4j的话,还要使用log4j的配置文件log4j.properties,我们就在hibernate解压包中搜索log4j.properties文件,将该文件拷贝到src目录下,日志内容如下:
### direct 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{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file hibernate.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=hibernate.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to socket - chainsaw ###
log4j.appender.socket=org.apache.log4j.net.SocketAppender
log4j.appender.socket.remoteHost=localhost
log4j.appender.socket.port=4560
log4j.appender.socket.locationInfo=true
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=warn, stdout
log4j.logger.org.hibernate=debug
### log just the SQL
log4j.logger.org.hibernate.SQL=debug
#log4j.logger.org.hibernate.engine.CascadingAction=debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=trace
### log schema export/update ###打印出ddl语句
log4j.logger.org.hibernate.tool.hbm2ddl=debug
### log cache activity ###
log4j.logger.org.hibernate.cache=debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
### annotation logs
#log4j.logger.org.hibernate.annotation=info
#log4j.logger.org.hibernate.cfg=info
#log4j.logger.org.hibernate.cfg.SettingsFactory=info
#log4j.logger.org.hibernate.cfg.AnnotationBinder=info
#log4j.logger.org.hibernate.cfg.AnnotationConfiguration=info
#log4j.logger.org.hibernate.cfg.Ejb3Column=info
#log4j.logger.org.hibernate.cfg.beanvalidation.BeanValidationEventListener=trace
下面就是搭建log4j日志环境后工程的目录结构: