怎样把hibernate产生的SQL语句,输出到log4j文件!!!
在网上找了好多,试了很多种,不知为什么,hibernate的SQL就是无法输出到log4j文件,所要的slf4j的几个包我都加了啊,怎么回事啊,知道的高手帮我看看吧!谢谢了!项目用的SSH三个框架。
以下是log4j.properties文件的配置:
log4j.rootLogger=INFO, A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] %C.%M(%L) - %m%n
log4j.appender.A1.file=${catalina.home}/logs/log4j/activate.log
log4j.appender.A1.threshold=INFO
log4j.appender.A1.DatePattern='-'yyyy-MM-dd
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.sql=TRACE
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
而且我也在Spring的配置文件中加上了,<prop key="hibernate.show_sql">true</prop>,但是这样它把SQL输出到控制台了,而log4j文件没有输出!
------解决方案--------------------俺也挺想知道的,搜了点资料,LZ看看可符合要求:http://blog.csdn.net/quchj89/article/details/7564159
------解决方案--------------------因为hibernate在输出sql时使用的logger名为org.hibernate.SQL,所以想让SQL语句输出到log4j,只要在log4j.properties或log4j.xml的配置中加上如下语句:
log4j.logger.org.hibernate.SQL=DEBUG
记得同时把hibernate中配置文件hibernate.show_sql设置为false,避免同时在控制台和log日志中双份输出sql语句。
------解决方案--------------------log4j.logger.org.hibernate.SQL=debug
log4j.logger.org.hibernate=info
------解决方案--------------------
正解!
------解决方案--------------------
log4j.appender.org.hibernate = org.apache.log4j.DailyRollingFileAppender
log4j.appender.org.hibernate.File = ../log_bias.log
log4j.appender.org.hibernate.layout = org.apache.log4j.PatternLayout
log4j.appender.org.hibernate.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
------解决方案--------------------log4j.logger.org.hibernate.SQL=DEBUG
log4j.logger.org.hibernate下面的东西想要输出的设为debug
------解决方案--------------------应该是这样配的,配置没问题,好好看看呗!