zoukankan      html  css  js  c++  java
  • MyBatis中SQL语句在Log4j下不显示的问题解决

    尼玛 查了一个星期 终于找到问题所在了  原来是 Jar包不全

    公司的一个项目中使用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即可。

  • 相关阅读:
    一个强悍的强制删除文件的批处理
    禁止用户使用QQ聊天工具
    《项目经理指导手册》附录2项目经理面试题
    《项目经理指导手册》 附录1每日站会评价表
    《项目经理指导手册》调研篇
    《项目经理指导手册》前言
    《项目经理指导手册》 会议篇
    从Log4j2今天的漏洞说起.
    Asp.Net将Excel数据导入Sql Server数据库的的例子
    Winform窗体程序输入法全角问题
  • 原文地址:https://www.cnblogs.com/shaman/p/3081882.html
Copyright © 2011-2022 走看看