MyBatis3 用log4j在控制台输出 SQL
方法一:使用标准日志输出
此方法比较简单,只需要配置 MyBatis 的配置文件 Configuration 中有相关属性即可,不用再放一个 log4j.properties 文件。
- <?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>
- <settings>
- <setting name="logImpl" value="STDOUT_LOGGING"/>
- </settings>
- </configuration>
关键语句:
- <setting name="logImpl" value="STDOUT_LOGGING"/>
指定 MyBatis 应该使用哪个日志记录实现。如果此设置不存在,则会自动发现日志记录实现。
方法二:使用log4j日志输出
1、spring-mybatis.xml 文件不需要修改;
2、在mybatis.xml中,指定使用log4j为日志实现,这个我实际测试也不需要。
- <?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>
- <settings>
- <setting name="logImpl" value="LOG4J"/>
- </settings>
- </configuration>
- <!-- 实际测试这个文件有没有都可以 -->
这里的value值可以是SLF4J、Apache Commons Logging、Log4J2、Log4J、JDK logging(除Log4J2、Log4J外,其他未验证),并会按顺序查找
3、在web.xml中也需要配置
- <listener>
- <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
- </listener>
或者用下面的(未测试)
- <listener>
- <listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class>
- </listener>
4、最后配置log4j.properties
- ### Log4j配置 ###
- ### 与Spring结合需要在web.xml中指定此文件位置,并添加监听器 ###
- #定义log4j的输出级别和输出目的地(目的地可以自定义名称,和后面的对应)
- #[ level ] , appenderName1 , appenderName2
- log4j.rootLogger=DEBUG,console,file
- #-----------------------------------#
- #1 定义日志输出目的地为控制台
- log4j.appender.console = org.apache.log4j.ConsoleAppender
- log4j.appender.console.Target = System.out
- log4j.appender.console.Threshold=DEBUG
- ####可以灵活地指定日志输出格式,下面一行是指定具体的格式 ###
- #%c: 输出日志信息所属的类目,通常就是所在类的全名
- #%m: 输出代码中指定的消息,产生的日志具体信息
- #%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
- log4j.appender.console.layout = org.apache.log4j.PatternLayout
- log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
- #-----------------------------------#
- #2 文件大小到达指定尺寸的时候产生一个新的文件
- log4j.appender.file = org.apache.log4j.RollingFileAppender
- #日志文件输出目录
- log4j.appender.file.File=log/tibet.log
- #定义文件最大大小
- log4j.appender.file.MaxFileSize=10mb
- ###输出日志信息###
- #最低级别
- log4j.appender.file.Threshold=ERROR
- log4j.appender.file.layout=org.apache.log4j.PatternLayout
- log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
- #-----------------------------------#
- #3 druid
- log4j.logger.druid.sql=INFO
- log4j.logger.druid.sql.DataSource=info
- log4j.logger.druid.sql.Connection=info
- log4j.logger.druid.sql.Statement=info
- log4j.logger.druid.sql.ResultSet=info
- #4 mybatis 显示SQL语句部分
- log4j.logger.org.mybatis=DEBUG
- #log4j.logger.cn.tibet.cas.dao=DEBUG
- #log4j.logger.org.mybatis.common.jdbc.SimpleDataSource=DEBUG
- #log4j.logger.org.mybatis.common.jdbc.ScriptRunner=DEBUG
- #log4j.logger.org.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
- #log4j.logger.java.sql.Connection=DEBUG
- log4j.logger.java.sql=DEBUG
- log4j.logger.java.sql.Statement=DEBUG
- log4j.logger.java.sql.ResultSet=DEBUG
- log4j.logger.java.sql.PreparedStatement=DEBUG
5. 导入的包
两种方式比较
1、使用标准日志输出配置简单,使用log4j日志输出配置相对复杂;
2、log4j功能强大,控制粒度比较细;
当在配置文件中指定为“ STDOUT_LOGGING”时,实际使用的是哪一个日志实现?Apache Commons Logging 还是JDK logging ?
都不是,实际是 System.out.pringln.
2017-09-14更新
有小伙伴反馈按第二种方法配置后不输出SQL 语句,请注意 log4j.properties 文件中的:
- log4j.appender.console.Threshold=DEBUG
是否与本例一致!
请注意细节,刚开始学习的朋友可以先完全使用本例提供的配置,得到正确的输出后再做个性定制。
另外,按照我上面的配置会输出大量 SQL 语句之外的信息,一位朋友尝试出只输出 SQL 语句、参数、结果的配置方法,在此表示感谢并分享给大家:
MyBatis3 用log4j在控制台输出 SQL相关推荐
- MyBatis3 用log4j在控制台输出 SQL----亲测,真实可用
转载 https://blog.csdn.net/testcs_dn/article/details/67640212 为什么要在控制台输出 SQL 呢? 当然是为了开发调试的时候方便了. 如果一个 ...
- springboot+mybatis-plus在log控制台输出sql语句
springboot+mybatis-plus在log控制台输出sql语句的方法,有两种方法可以实现: 1.第一种将log-impl 配置到原有的mybatis-plus的configuration下 ...
- Log4j控制台输出sql语句
1.引入log4j包 <!-- log4j --><dependency><groupId>log4j</groupId><artifactId& ...
- hibernate框架控制台输出sql语句
第一步:jar包,有如下三个jar包(没有的话,给我留言,我发给你) 第二步,在src包下面新建一个file,命名为log4j.properties 内容如下: # # Hibernate, Rela ...
- ibaits中进行log4j控制台输出
IBATIES在控制台输出SQL语句2008-09-09 21:54HIBERANTE有这样的功能,那么IBATIES也不能例外,不过它输出要依靠LOG4J,而不是自己配置自己的文件.配置LOG4J内 ...
- Spring3+MyBatis3整合无法输出SQL语句问题的解决
2019独角兽企业重金招聘Python工程师标准>>> Spring3+MyBatis3整合无法输出SQL语句问题的解决 转载于:https://my.oschina.net/huh ...
- SpringBoot mybatis 输出SQL语句到控制台
配置文件 .yml中如下配置: logging:level:com.muyan.mapper: debug #打印sqlconfig: classpath:logback.xml logging标识配 ...
- log4j.properties中的这句话“log4j.logger.org.hibernate.SQL=DEBUG ”该怎么写在log4j.xml里面呢?...
http://www.cnblogs.com/gredswsh/p/log4j_xml_properties.html 请问:log4j.properties中的这句话"log4j.logg ...
- log4jdbc oracle,通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql
通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql 通过weblogic配置log4jdbc数据源,在项目中使用该数据源,输出sql 说一下配置: 服务器weblogic ...
最新文章
- bzoj 2756 [SCOI2012]奇怪的游戏 二分+网络流
- Python基础day01【软件安装、变量的定义和使用、数据类型、标识符和关键字、输入输出、数据类型转换、运算符、PEP 8 规范】
- 微信小程序开发——点击按钮退出小程序的实现
- 剑指offer(刷题1-10)--c++,Python版本
- activemq nodejs stomp 重连机制_5分钟优劣分析 Kafka、RabbitMQ、RocketMQ、ActiveMQ消息队列...
- PHP可变变量($$)
- Java编程题——简单下拉框二级联动
- 酒店管理系统web版/Java酒店管理系统
- Python — — turtle 常用代码
- iOS TestFlight 使用详解
- 如何下载微博、B站(哔哩哔哩)视频到电脑
- ctl文件去空格,word文档段落如何空格去掉 word文档段落前空格
- Java Blend_Expression Blend的替代品[关闭]
- 一文理解 ISO、快门、光圈、曝光概念 以及 光圈、焦距与景深的关系
- 长沙南站启动脸部识别验证验票;奔驰和美国无人机物流公司公司合作用无人机配送商品...
- 流行病学名词解释和简答题集锦
- 【202106小白训练营】day03-java数据结构
- python是什么意思中文、好学吗-python好学吗
- 【来日复制粘贴】让PivotTable随数据源一起动起来
- 55、【backtrader股票策略】炒股票应该买便宜股票还是贵的股票?
热门文章
- sql唯一约束怎么设置_20200923 SQL UNIQUE 约束
- java 鸡尾酒排序_冒泡排序及优化(Java实现)
- 如何在geth中创建genesis.json_如何在Photoshop中应用“通道混合器”创建一个复古韵味色调...
- [JDK8] Stream
- Android友盟增量更新
- 将用户添加至sudoers列表
- Linux查看文件编码格式及文件编码转换
- Selenium Web 自动化 - 如何找到元素
- HTTPDNS成为移动互联网的标配–原因与原理解析(转)
- 信息安全系统设计基础第十一周学习总结