不尿性,直接入题:
SpringMVC + Mybatis 中 通过log4j向控制台打印SQL语句--->失败!!
上配置:
######################################################################### #Root Logger #log4j.rootLogger = [ level ] , appenderName, appenderName, #ConversionPattern:%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t] [%c] [%p] - %m%n #FilePath = /opt/uploads/maven_logs/maven_web.log ######################################################################### #将Mybatis log4j运行级别调到DEBUG可以在控制台打印出Mybatis运行的sql语句 log4j.rootLogger=DEBUG,Console,File ### 把日志信息输出到控制台 ### log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.Target=System.out log4j.appender.Console.layout = org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t] [%c] [%p] - %m%n ### 把日志信息输出到文件:/opt/uploads/maven_logs/maven_web.log ### log4j.appender.File = org.apache.log4j.DailyRollingFileAppender log4j.appender.File.File = /opt/uploads/maven_logs/maven_web.log log4j.appender.File.Threshold = DEBUG log4j.appender.File.layout = org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern =%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t] [%c] [%p] - %m%n ###显示SQL语句部分 log4j.logger.com.mybatis=DEBUG log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
各位看官,我这番配置是没问题吧?
但是在控制台SQL死活不出来。上网search...
很多很多,看的我眼花缭乱,像什么配置不通(此处槽点,我只是SQL语句打印不出来,其他一切正常,因此忽略)、需要slf4j-api-1.6.1.jar和slf4j-log4j12.-1.6.1.jar (maven库中有,忽略!),然后就是在网上找别人的配置,但是并没有什么卵用!
我急啊!
直接去mybatis文档查,兴许会有关于log的......
功夫不负有心人,果然有!摘抄一段:
Logging
Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种工具:
SLF4J
Apache Commons Logging
Log4j 2
Log4j
JDK logging
具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。
不少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现。记住这点非常重要。这将意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。 这种做法不免让人悲催,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存 在了,按照优先级顺序,Log4J自然就被忽略了!
我去!mybatis还会这么玩啊!搞死我了。但是文档中并有直接说明如何通过修改配置文件实现,但是这个文档提供了对log4j的详细配置,值得看一下。文档中说了一大堆代码实现的,不喜欢这种。既然给了思路了是mybatis搞的鬼, 那就继续上网找资料...
终于,碰到了好心人,解了我的惑!
好心人链接中有,我这儿在赘述一遍:
在mybatis-config.xml配置文件中:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <properties> <property name="dialect" value="mysql" /> </properties> <settings> <setting name="logImpl" value="LOG4J" /> </settings> </configuration>
重要的是:
<setting name="logImpl" value="LOG4J" />
在mybatis的配置文件中:setting节点里配置的值会直接改写Configuration对应的变量值,这些变量描述的是Mybatis的全局运行方式,如果对这些属性的含义不熟悉的话建议不要配置,使用默认值即可。
具体的各位看官,自行查找资料,此处不做过多赘述...
OK!
技能get!
解决了!!。。。世界和平了, 阿门。。。先写到这...头昏脑涨的
相关推荐
idea MyBatis 配置 Log4j 打印 SQL 语句示例 MyBatis 是一个流行的持久层框架,用于将 Java 应用程序中的 SQL 语句与数据库进行交互。Log4j 是一个流行的日志记录工具,用于记录 Java 应用程序中的日志信息。在实际...
【标题】"mybatis查询入门(log4j控制台sql语句日记输出的)"涉及的知识点主要集中在MyBatis框架的基础使用以及如何通过Log4j在控制台输出SQL语句,以便于调试和优化数据库操作。MyBatis是一个轻量级的Java持久层框架...
在执行`getUserByUsernameAndStatus`方法时,Mybatis会自动填充SQL参数,并将完整的SQL语句(包括参数值)打印到控制台。例如,如果传入的参数是`username='test'`和`status='active'`,控制台将输出如下内容: ```...
把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -> MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...
本教程将详细阐述如何使用四个关键组件——Maven、SpringMVC、MyBatis和Log4j——来搭建一个强大的Web应用框架,旨在提高开发效率并优化项目管理。 **Maven** 是一个流行的项目管理和综合工具,它通过统一的构建...
4. **运行并查看日志**:完成以上步骤后,当MyBatis执行SQL时,相应的SQL语句以及执行信息将会按照Log4j的配置输出到控制台或其他指定位置。 除了基础配置,我们还可以根据需求调整日志级别,例如在生产环境中可能...
设置为`DEBUG`级别后,所有与这些类相关的日志信息,包括SQL语句和参数,都会被打印到控制台。 注意,`debug="false"`表示不开启Logback自身的调试模式,如果需要看到Logback内部的配置信息,可以将其设置为`true`...
总之,通过配置MyBatis-Plus的日志实现为`StdOutImpl`,开发者可以在控制台清晰地看到完整的带参数SQL语句,从而提高调试和优化的效率。在实际项目中,根据项目的日志管理需求,可以选择适合的日志框架,并正确配置...
总结来说,要在MyBatis+Spring框架中配置日志以显示SQL语句,主要步骤包括:选择并添加日志实现库(如SLF4J和Logback),配置日志级别和输出,设置MyBatis的`logImpl`属性为SLF4J,并确保在Spring配置中正确引用...
"Log4j-在控制台打印SQL的源码" 指的是一个教程或案例,目的是教用户如何配置并使用Log4j日志框架来记录应用程序中的SQL语句,使得这些SQL语句可以在控制台中打印出来。这通常用于调试和性能分析,特别是对于使用...
7. **运行时日志输出**:在运行项目时,Mybatis会根据Log4j的配置打印相应的日志信息,包括SQL语句、参数绑定、执行时间等,这对于调试和性能优化非常有帮助。 总的来说,Mybatis和Log4j的结合使得我们能够方便地...
例如,你可以配置Log4j的日志输出级别为DEBUG,那么在运行时,MyBatis会打印出每个SQL语句及其参数,便于查看和调试。 在实际项目中,MyBatis的配置文件通常会包含以下部分: 1. 数据源配置:定义数据库连接的信息...
在MyBatis中,为了记录SQL语句和执行时间,可以在MyBatis的配置文件`mybatis-config.xml`中设置日志工厂: ```xml ... ... <setting name="logImpl" value="LOG4J"/> ... ... ``` 设置`logImpl`为`LOG4J`...
总结以上,通过MyBatis3与log4j的集成,开发者可以方便地在控制台输出SQL语句,这对于调试和问题定位是极其有帮助的。通过合理配置log4j和MyBatis3,我们既可以充分利用日志信息来提高开发效率,又能确保安全地处理...
本文将深入探讨如何在IntelliJ IDEA中安装并使用"MyBatis Log Plugin"插件,以实现MyBatis SQL打印功能,帮助开发者更便捷地进行数据库调试。 首先,我们需要了解"MyBatis Log Plugin"插件的作用。MyBatis是一个...
在这个配置中,我们设置了`log4j.logger.org.mybatis`的级别为DEBUG,这意味着MyBatis的所有DEBUG级别的日志信息,包括执行的SQL语句,都会被记录下来。 在MyBatis的配置文件(如`mybatis-config.xml`)中,确保...
在项目中,我们可以通过配置log4j.properties或log4j.xml文件来设定日志级别、输出目的地(如控制台、文件、邮件等)、格式等。通过@Log4j注解或LoggerFactory获取Logger实例,即可在代码中方便地记录日志,帮助我们...
由于Mybatis Log Plugin现在已经收费了,所以我们...如果你不清楚或者不了解 Mybatis Log Plugin 是什不妨听我解释一下:Mybatis Log Plugin是控制台 sql 打印插件 帮助我们打印sql 更清楚 更清晰的打印执行的sql语句
Spring Boot简化了Spring应用程序的初始设置和配置,Mybatis作为轻量级的持久层框架提供了灵活的SQL操作,而Log4j则是广泛使用的日志记录工具,用于追踪应用中的各种事件。 首先,Spring Boot以其“开箱即用”的...
总的来说,通过配置日志框架、MyBatis配置、IDEA设置和使用mybatis-log插件,你可以在IntelliJ IDEA中方便地打印和查看MyBatis执行的完整SQL语句,从而提升开发效率和问题排查能力。在实际项目中,合理使用日志可以...