为什么我的mybatis后台不能打印sql语句

如题所述

项目采用SpringMVC+Mybatis的架构,日志工具还是最常用的log4j,整合了其他框架之后,发现无法打印SQL语句,然而项目中的显示调用日志却可以正常打印出来,还有当SQL拼写有错误的时候会打印出来

然后开始看Mybatis的官方文档,关于日志这一块是怎么处理的

最近Mybatis有中文文档了,虽然不全,不过已经很好了,这里面发现了项目中存在的问题。项目中引入了shiro框架,集成了slf4j日志,导致了Mybatis无法引用log4j的配置文件打印SQL语句

问题原因:这个是Mybatis默认查找日志的顺序,自上而下,也就是说,如果项目中有前面3个日志框架时,对于Mybatis,log4j就不会生效


SLF4J

Apache Commons Logging

Log4j 2

Log4j

JDK logging

解决办法:在MyBatis的配置文件mybatis-config.xml里面添加一项setting来指定log4j

<configuration>    
    <settings>    
        <setting name="logImpl" value="LOG4J" />      
    </settings>    
</configuration>

log4j中对指定内容进行输出,其中example为包名,可以继续细化处理


log4j.logger.example=DEBUG

温馨提示:内容为网友见解,仅供参考
无其他回答

为什么我的mybatis后台不能打印sql语句
问题原因:这个是Mybatis默认查找日志的顺序,自上而下,也就是说,如果项目中有前面3个日志框架时,对于Mybatis,log4j就不会生效 SLF4J Apache Commons Logging Log4j 2 Log4j JDK logging 解决办法:在MyBatis的配置文件mybatis-config.xml里面添加一项setting来指定log4j <configuration> <settings> ...

mybatis sql出错怎么打印出来错误
怎么把mybatis的sql打印出来mybatis默认使用log4j,当有self4j这个日志jar包存在时会无法打印sql,请移除或者在工程启动时显示设置mybatis使用的日志类:log4j.logger.org.apache.ibatis=debug,stdoutlog4j.logger.java.sql=debug,stdout

怎么打印mybatis的sql
mybatis默认使用log4j,当有self4j这个日志jar包存在时会无法打印sql,请移除或者在工程启动时显示设置mybatis使用的日志类:log4j.logger.org.apache.ibatis=debug,stdout log4j.logger.java.sql=debug,stdout

如何让mybatis打印出执行的sql
这样有时可能却不是个可行的办法,原因在于不可能移除self4j包,因为其他依赖包必须依赖这个包。 mybatis有如下方法来手动选择日志类,调用后成功打印日志 如果引用了slf4j的包,并且要使用log4j需要加入slf4j-log4j12的包,如果没有加入slf4j-log4j12的包是无法打印sql的。。具体log4j文件如下:log4j.root...

Mybatis打印SQL
首先,你可以在application.yml文件中调整logging级别。具体操作是在logging级别下添加适当的level配置,这将使Mybatis的SQL语句及其参数、影响的行数等信息被记录下来,便于查看。其次,另一种方法是针对Mybatis本身进行设置。步骤一,同样在application.yml中,将mybatis的级别进行配置。接着,进入mybatis-...

请教问Mybatis 如何打印SQL语句
MyBatis自己内部使用的是Log4j,但实际上支持用户使用各种Log技术。如果配置正确的话,也就是启用debug级别即可打印所有的MyBatis的语句。比如,在我的web程序中,使用logback,maven依赖如下:<!--log-begin--> <dependency> <groupId>org.slf4j<\/groupId> <artifactId>jcl-over-slf4j<\/artifactId> ...

mybatis怎么输出sql语句
将ibatis log4j运行级别调到DEBUG可以在控制台打印出ibatis运行的sql语句 log4j.rootLogger=debug,stdout,logfile 把日志信息输出到控制台 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.err log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout 把日志信息...

mybatis怎么配置log4j打印出sql语句
log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG12345678910111234567891011 rootLogger的级别是info,防止其他地方输出debug的调试代码(rootLogger若设为debug了,mybatis也没必要再设置了)。但这段代码根本没有作用!不知是不是我使用的jar包版本比较新的缘故(3.4.1)。

SpringBoot项目中Mybatis不打印日志怎么办?
mybatis:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl如上配置,即指定mybatis的SQL日志输出类。IDEA中的SQL日志展示插件这个IDEA插件就是mybatislogplugin插件,这个插件可以将mybatis所执行的SQL语句,进行一个打印,并且打印的窗口不再是控制台,而是一个独立的窗口,如下图所示:这...

mybatis怎样打印出sql
在scr下添加一个log4j.properties文件,大致模版可以百度,主要是把日志级别log4j.rootLogger=debug,stdout设置为像我这样的debug,因为mybatis的sql语句的输出是debug()输出的

相似回答