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日志环境后工程的目录结构: