MyBatis中SQL语句在Log4j下不显示的问题解决
2013-05-16 15:10
441 查看
尼玛 查了一个星期 终于找到问题所在了 原来是 Jar包不全
公司的一个项目中使用MyBatis曾经搭建框架之初就研究过让MyBatis显示查询的SQL日志,但是以失败而告终。今天终于把这个东西成功弄出来了。在网上也查了好多方法,有这样写的:
log4j.logger.java.sql.PreparedStatement=DEBUG
也有这样写的:
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug.
但我无论用哪一种写法却都不成功!MyBatis官网也找了,百度也谷歌了。最后发现问题根源,项目中有slf4j的包,也在log4j的包,但是没有slf4j-log4j,于是添加如下配置:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
但由于项目中使用有Xmemcached而Xmemcached对于slf4j与slf4j-log4j的版本要求有限制,如果报错请采用如上版本。
添加好后将日志级别设置成DEBUG则能成功打印出SQL日志,但是会发现xmemcached会不停的打印debug日志,发现这种情况可以根日志级别设置成INFO,然后使用:
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
单独将sql日志级别设置成debug即可。
公司的一个项目中使用MyBatis曾经搭建框架之初就研究过让MyBatis显示查询的SQL日志,但是以失败而告终。今天终于把这个东西成功弄出来了。在网上也查了好多方法,有这样写的:
log4j.logger.java.sql.ResultSet=INFO log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
也有这样写的:
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug.
但我无论用哪一种写法却都不成功!MyBatis官网也找了,百度也谷歌了。最后发现问题根源,项目中有slf4j的包,也在log4j的包,但是没有slf4j-log4j,于是添加如下配置:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
但由于项目中使用有Xmemcached而Xmemcached对于slf4j与slf4j-log4j的版本要求有限制,如果报错请采用如上版本。
添加好后将日志级别设置成DEBUG则能成功打印出SQL日志,但是会发现xmemcached会不停的打印debug日志,发现这种情况可以根日志级别设置成INFO,然后使用:
log4j.logger.java.sql.ResultSet=INFO log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
单独将sql日志级别设置成debug即可。
相关文章推荐
- 解决ssm环境下配置log4j打印mybatis的sql语句无效的问题
- jboss7.1.1下使用log4j输出mybatis3.2.2的SQL语句问题与解决方法
- 解决mybatis执行SQL语句部分参数返回NULL问题
- Spring3+MyBatis3整合log4j无法输出SQL语句问题的解决
- MyBatis Log4j无法打印SQL语句问题详解
- Mybatis其他-开启LOG4J显示执行的SQL语句
- 通过Log4j的DEBUG级别来显示mybatis的sql语句
- mybatis显示sql语句 log4j.properties配置文件
- DataTable实现列位置交换,用于SQL语句无法解决字段页面显示顺序问题
- mybatis显示sql语句 log4j.properties配置文件
- ssm项目使用Mybatis动态拼接sql语句,生成的sql中文全部显示为???的问题(配置文件sql语句中文解析问题)
- mybatis中使用log4j打印sql语句不起作用问题
- log4j实现显示mybatis执行的sql语句
- 配置mybatis解决log4j未正常打印sql的问题
- mybatis显示sql语句 log4j.properties配置文件
- DataTable实现列位置交换,用于SQL语句无法解决字段页面显示顺序问题
- 关于Mybatis的log4j配置SQL语句显示
- MyBatis 配置控制台上显示sql语句(log4j.properties 之三)
- mybatis显示sql语句log4j配置
- mybatis显示sql语句log4j配置