利用log4j显示hibernate打印sql中的参数
来源:互联网 发布:网络用词pa是什么意思 编辑:程序博客网 时间:2024/06/06 13:02
利用log4j显示hibernate打印sql中的参数
大家都知道在 hibernate.cfg.xml 配置文件中添加以下三条配置,就可以在控制台显示执行的sql:
- <!-- 是否显示sql -->
- <property name="show_sql">true</property>
- <!-- 是否格式化sql -->
- <property name="format_sql">true</property>
- <!-- 是否使用注释 -->
- <property name="use_sql_comments">true</property>
肯定遇到过这种情况:
- /* insert cn.javasd.hibernate.ZlpUser
- */ insert
- into
- ZlpUser
- (name, password, createTime, expireTime, id)
- values
- (?, ?, ?, ?, ?)
?的地方的值并不知道,当然可以跟踪程序断点获得,但是为了方便监控,可以使用log4j的配置来给这些占位符进行参数绑定(bind)
具体配置如下(单在hibernate环境下,未整合spring):
1.log4j
文件名:log4j.properties (根目录下)
- ### 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
- log4j.logger.org.hibernate=debug
- log4j.logger.org.hibernate.hql.ast.AST=debug
- #下面的两条配置非常重要,设置为trace后,将可以看到打印出sql中 ? 占位符的实际内容
- #this is the most important config for showing parames like ?
- log4j.logger.org.hibernate.SQL=trace
- log4j.logger.org.hibernate.type=trace
- #above two configs
- log4j.logger.org.hibernate.tool.hbm2ddl=debug
- log4j.logger.org.hibernate.hql=debug
- log4j.logger.org.hibernate.cache=debug
- log4j.logger.org.hibernate.transaction=debug
- log4j.logger.org.hibernate.jdbc=debug
- log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
- log4j.rootLogger=warn, stdout
- log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
- 打印后的结果如下:
- Hibernate:
- /* insert cn.javasd.hibernate.ZlpUser
- */ insert
- into
- ZlpUser
- (name, password, createTime, expireTime, id)
- values
- (?, ?, ?, ?, ?)
- 16:09:06,280 TRACE StringType:151 - binding '张路平2212' to parameter: 1
- 16:09:06,284 TRACE StringType:151 - binding '3839729' to parameter: 2
- 16:09:06,287 TRACE TimestampType:151 - binding '2013-01-16 16:09:06' to parameter: 3
- 16:09:06,294 TRACE TimestampType:151 - binding '2013-01-16 16:09:06' to parameter: 4
- 16:09:06,295 TRACE StringType:151 - binding '402881e13c426784013c426785cf0001' to parameter: 5
2. log4j2
log4j2.xml 配置
<Loggers><Root level="TRACE"> <AppenderRef ref="Console"/> <AppenderRef ref="RollingFileOperation"/></Root>
<Logger name="log4j.logger.org.hibernate.type" level="TRACE" ></Logger>
当然,输出的结果中有很多对于自己不必要的信息,可以通过调整log4j的内容来控制输出,那几个debug的信息都可以注掉,其实 log4j.logger.org.hibernate.SQL=trace 这条也可以注掉,不然会打印出两遍sql
最后要说一下配置log4j需要注意的一些地方,特别是引入jar包的时候:
1、因为Hibernate 3用的是slf4j,因此要想使用log4j配置文件来全面配置Hibernate日志,
还需要添加slf4j-log4j12-XX.jar。注意,如果添加了此jar包,需要移除slf4j-nop-XX.jar,
否则控制台会有“Multiple bindings were found on the class path ”错误。
2、需要添加log4j-x.x.xx.jar
3、添加slf4j-api-x.x.x.jar
0 0
- 利用log4j显示hibernate打印sql中的参数
- 利用log4j显示hibernate打印sql中的参数
- 利用log4j显示hibernate打印sql中的参数
- 利用log4j显示hibernate打印sql中的参数
- 利用log4j显示hibernate打印sql中的参数
- 利用log4j显示hibernate打印sql中的参数
- 利用log4j显示hibernate打印sql中的参数
- 在控制台中显示Hibernate打印的SQL中的参数
- 在控制台中显示Hibernate打印的SQL中的参数
- 在控制台中显示Hibernate打印的SQL中的参数
- 在控制台中显示Hibernate打印的SQL中的参数 .
- Hibernate配置Log4J显示SQL参数
- Hibernate配置Log4J显示SQL参数
- Hibernate配置Log4J显示SQL参数
- Hibernate打印SQL及附加参数(log4j配置)
- 控制台显示打印sql中的具体参数
- mybatis 利用log4j 打印sql
- hibernate打印sql参数
- 不通过main函数获取命令行参数(Win/Linux/Qt)
- ios:UIAlertView自动消失
- 欢迎使用CSDN-markdown编辑器
- iOS 摇一摇
- 用CSS缩小文章里的图片可以在手机里显示
- 利用log4j显示hibernate打印sql中的参数
- LEADTOOLS OCR技术案例展示
- Unity3D 碰撞检测的条件和相关组件
- Ubuntu下安装CUDA的最简方法
- FRM-41081:不能移动项:无效位置
- C#可删除对象(学习)
- 欢迎使用CSDN-markdown编辑器
- static
- TCP如何能正常关闭连接?