`

mybatis打印sql

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


---------------------------------------------------------------
今天又碰到按照上面那样做了还是没有打印sql,原因在于不可能移除self4j包,因为其他依赖包必须依赖这个包,。。。。不得已又去查资料。
mybatis有如下方法来手动选择日志类,调用后成功打印日志
org.apache.ibatis.logging.LogFactory.useSlf4jLogging();
org.apache.ibatis.logging.LogFactory.useLog4JLogging();
org.apache.ibatis.logging.LogFactory.useJdkLogging();
org.apache.ibatis.logging.LogFactory.useCommonsLogging();
org.apache.ibatis.logging.LogFactory.useStdOutLogging();

注意:If you choose to call one of these methods, you should do so before calling any other MyBatis
method.
Also, these methods will only switch to the requested log implementation if that
implementation is available on the runtime classpath. For example, if you try to select Log4J logging
and Log4J is not available at runtime, then MyBatis will ignore the request to use Log4J and will use
it's normal algorithm for discovering logging implementations.

针对红色的那段字。我使用的是spring,在spring启动的时候调用LogFactory.useLog4JLogging();打印成功
分享到:
评论
9 楼 angole 2014-10-09  
不错,又学习到了。
8 楼 hft24dq 2013-10-28  
rxcss66 写道
个人没有搞明白什么原理,不过跟一楼说的一样,如果引用了slf4j的包,并且要使用log4j需要加入slf4j-log4j12的包,如果没有加入slf4j-log4j12的包是无法打印sql的。
刚刚试过。具体log4j文件如下:
log4j.rootCategory=info, stdout , R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\report.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

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

log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout


请问如此配置,sql信息打印到哪里了?

我现在的问题是,sql心可以在控台打印,但是无法打印到文件里面去。
7 楼 fireinjava 2013-06-09  
fireinjava 写道
org.apache.ibatis.logging.LogFactory.useSlf4jLogging();
+1 

log4j.rootLogger=DEBUG
另外还要设置这个
6 楼 fireinjava 2013-06-09  
org.apache.ibatis.logging.LogFactory.useSlf4jLogging();
+1 
5 楼 rxcss66 2012-09-10  
个人没有搞明白什么原理,不过跟一楼说的一样,如果引用了slf4j的包,并且要使用log4j需要加入slf4j-log4j12的包,如果没有加入slf4j-log4j12的包是无法打印sql的。
刚刚试过。具体log4j文件如下:
log4j.rootCategory=info, stdout , R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=D:\\report.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n

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

log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug,stdout
4 楼 lees 2012-05-25  
mark 试试
3 楼 akwolf 2011-12-21  
好方法,赞一个!!
2 楼 13146489 2011-12-16  
hellostory 写道
楼主你的观点会误导人的!
SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。
若要再slf4j中使用log4j,需要加入slf4j-log4j12-1.6.4.jar包!

谢谢您的提醒。呵呵
1 楼 hellostory 2011-12-12  
楼主你的观点会误导人的!
SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系统。
若要再slf4j中使用log4j,需要加入slf4j-log4j12-1.6.4.jar包!

相关推荐

    ideal mybatis打印sql插件

    把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -> MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...

    mybatis打印出sql

    配置MyBatis打印SQL的关键在于正确配置Log4j以及MyBatis的SqlSessionFactory。首先,我们需要使用提供的`log4j.properties`文件进行配置。这个文件是Log4j的日志配置文件,通过它可以设定不同级别的日志输出,例如...

    mybatis慢SQL插件

    基于mybatis的慢SQL小插件,原理是mybatis拦截器。只需要在springboot的配置文件做简单的配置,mybatis拦截器将SQL中所有参数自动做了填充。拦截器监控慢SQL并将完整的可执行的SQL语句打印在日志文件中,复制该SQL...

    mybatis打印SQL的log4j

    要让MyBatis使用Log4j打印SQL,我们需要进行以下步骤: 1. **引入Log4j依赖**:在项目中添加Log4j的依赖库,通常是在Maven或Gradle的构建文件中指定。如果使用的是JAR包,需要将其放入项目的类路径中。 2. **配置...

    Mybatis Log(自动填充sql参数打印到控制台)

    Mybatis 提供了一种日志机制,能够自动填充SQL参数并打印到控制台,这对于排查问题和理解查询逻辑非常有帮助。 首先,Mybatis的日志实现依赖于日志库,如Log4j、Logback或Java内置的java.util.logging。为了开启SQL...

    mybatis查询入门(log4j控制台sql语句日记输出的)

    【标题】"mybatis查询入门(log4j控制台sql语句日记输出的)"涉及的知识点主要集中在MyBatis框架的基础使用以及如何通过Log4j在控制台输出SQL语句,以便于调试和优化数据库操作。MyBatis是一个轻量级的Java持久层框架...

    idea插件-mybatis-打印sql

    本文将深入探讨如何在IntelliJ IDEA中安装并使用"MyBatis Log Plugin"插件,以实现MyBatis SQL打印功能,帮助开发者更便捷地进行数据库调试。 首先,我们需要了解"MyBatis Log Plugin"插件的作用。MyBatis是一个...

    原样输出mybatis的sql执行语句(mysql和oracle都可用).zip

    我们可以创建一个自定义的AOP切面,拦截MyBatis的SqlSession操作,记录并打印SQL语句。首先,定义一个切入点表达式,例如: ```java @Pointcut("execution(* org.apache.ibatis.session.defaults....

    springboot+mybatis+sqlserver 仓库管理系统

    《SpringBoot+Mybatis+SQLServer构建的仓库管理系统详解》 在现代企业信息化管理中,仓库管理系统扮演着至关重要的角色,它能够有效地管理和追踪库存,提高运营效率。本项目是基于SpringBoot框架,结合Mybatis持久...

    idea插件mybaits log 打印sql语句

    标题 "idea插件mybaits log 打印sql语句" 涉及的是一个针对IntelliJ IDEA的MyBatis日志插件,它的主要功能是帮助开发者在开发过程中实时查看并打印出MyBatis执行的SQL语句。这个功能对于调试和优化数据库查询非常...

    mybatis+spring 框架中配置日志中显示sql语句

    为了打印SQL,我们需要将`logger`的级别设为`DEBUG`,并包含MyBatis的包名。以下是一个基本的`logback.xml`示例: ```xml <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ...

    mybatis 插件: 打印 sql 及其执行时间实现方法

    MyBatis 插件:打印 SQL 及其执行时间实现方法 MyBatis 提供了插件机制,允许开发者在特定的点拦截已经映射语句的执行。默认情况下,MyBatis 允许使用插件来拦截方法调用,例如 Executor、ParameterHandler、...

    idea mybatislog 日志打印 打印完整sql

    如果你的项目中没有明确指定日志框架,MyBatis将无法打印SQL。因此,确保项目中包含一个有效的日志实现库是第一步。 1. **配置日志框架**: - **Log4j**: 在项目中添加log4j的依赖,并在`log4j.properties`或`log4...

    eclipse开发java使用mybatis打印不带问号的可执行sql

    本人开发人员,平常也是在CSDN下载资料,现在不需要积分的少了,所以我也得赚点积分,绝对提高你的开发效率。eclipse开发java使用mybatis打印不带问号的可执行sql

    mybatis SQL日志解析

    mybatis SQL日志解析;查看日志时mybatis打印的日志查询条件以及参数不是拼接好的,想复制对应sql在本地执行时比较麻烦,通过前端编写页面进行日志解析,拼接sql中的问号以及参数变课轻松实现

    springboot+mybatis配置控制台打印sql日志的方法

    在Spring Boot集成MyBatis的项目中,有时候我们需要在控制台打印SQL日志,以便于调试和优化数据库操作。本文将详细介绍如何配置Spring Boot和MyBatis以实现控制台打印SQL日志的功能。 首先,Spring Boot默认使用的...

    springboot+mybatis+sql日志

    在这个"springboot+mybatis+sql日志"的主题中,我们将探讨如何在Spring Boot应用中整合MyBatis,并通过Logback实现动态打印SQL日志,以及根据不同包名将日志输出到不同的文件。 首先,Spring Boot与MyBatis的集成...

    mybatisx,一款打印项目sql在日志中的插件

    - 在开发环境中使用,避免在生产环境中大量打印SQL日志,以免对性能造成影响。 总的来说,MybatisX作为一款强大的Mybatis插件,为开发人员提供了方便、高效的SQL调试工具,有助于提升项目的质量和开发效率。通过对...

    Mybatis日志中的SQL解析工具(网页版).html

    Mybatis日志中的SQL解析工具(网页版) 说明:复制日志时,必须注意,日志必须包含Preparing:和Parameters:全部内容,而且日志换行格式要保留,不要复制成纯文本,直接ctrl+c即可。

    idea mybatis配置log4j打印sql语句的示例

    idea MyBatis 配置 Log4j 打印 SQL 语句示例 MyBatis 是一个流行的持久层框架,用于将 Java 应用程序中的 SQL 语句与数据库进行交互。Log4j 是一个流行的日志记录工具,用于记录 Java 应用程序中的日志信息。在实际...

Global site tag (gtag.js) - Google Analytics