【原】配置Log4j,使得MyBatis打印出SQL语句
【环境参数】
JDK:jdk1.8.0_25
IDE:Eclipse Luna Servie Release 1
框架:Spring 4.1.5 + SpringMVC 4.1.5 + MyBatis 3.2.2
【配置步骤】
一、设置MyBatis的Setting(非必须,不同环境下,可能不需要该设置)。
在“src/main/java/resources”目录下,创建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>
<settings>
<setting name="lazyLoadingEnabled" value="false" />
<setting name="logImpl" value="LOG4J" />
</settings>
</configuration>
二、配置log4j的配置文件。
不同的项目中,log4j的配置文件的格式可能不同,在一些项目中,log4j的配置文件是XML格式的,比如log4j.xml;在另一些项目中,log4j的配置文件是properties格式的,比如log4j.properties。
备注:properties格式文件的配置一般只在老的项目中存在,新的互联网类项目,一般都是XML格式。
1、对于properties格式文件的配置。
###############Log4j 4 SQL Output start#################
log4j.logger.com.xxx.mydao=DEBUG
log4j.logger.com.springframework=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
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl=DEBUG
log4j.logger.java.sql=DEBUG,CONSOLE
###############Log4j 4 SQL Output end###################
2、对于xml格式文件的配置。
<loggers>
<!-- name可以指定包名或具体的类;additivity如果指定true,则root logger也会生效,相同日志会输出两次;false,则只有当前日志文件输出 -->
<!-- 借据插入接口日志 -->
<logger level="info" name="insertCreditBill" additivity="false">
<appender-ref ref="insertCreditBillLog" />
</logger> <!-- 下面是打印通过log4j2打印出mybatis语句的配置-->
<logger name="com.xxx.mydao">
<level>DEBUG</level>
</logger>
<logger name="com.springframework">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis.common.jdbc.SimpleDataSource" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis.common.jdbc.ScriptRunner" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="Java.sql.Connection" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="java.sql.Statement" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="java.sql.PreparedStatement" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="java.sql.ResultSet" additivity="true">
<level>DEBUG</level>
</logger>
<logger name="org.apache.ibatis.logging.commons.JakartaCommonsLoggingImpl" additivity="true">
<level>DEBUG</level>
</logger> <!-- root logger,任何其它的logger最终都相当于继承自 root logger -->
<root level="INFO">
<appenderRef ref="Console" />
<appenderRef ref="FileLog"></appenderRef>
</root>
</loggers>
说明:
上述配置中,“com.xxx.mydao”为自己项目中MyBatis的所有的mapper和xml文件所在的包名字。
至此,log4j的打印SQL语句的配置完成。
3、XML格式配置的精简版本
<loggers>
<!-- 下面是打印通过log4j2打印出mybatis语句的配置-->
<logger name="com.xxx.mydao">
<level>DEBUG</level>
</logger> <!-- root logger,任何其它的logger最终都相当于继承自 root logger -->
<root level="INFO">
<appenderRef ref="Console" />
<appenderRef ref="FileLog"></appenderRef>
</root>
</loggers>
说明:
在开发中,需要配置让哪个包下的程序打印出SQL,则仅仅只用配置那一个包名就成。
上述配置中,“com.xxx.mydao”为自己项目中MyBatis的mapper和xml文件所在的包名字,因此,精简版中,仅仅配置了这个包的内容
【拓展】
“细粒度”控制:Log4j打印出MyBatis中仅仅单个Mapper的配置。
<!-- 下面是通过配置log4j2,仅仅打印出单个mapper的SQL语句的配置-->
<logger name="com.beebank.dao.iface.UserMapper">
<level>DEBUG</level>
</logger>
【原】配置Log4j,使得MyBatis打印出SQL语句的更多相关文章
- 控制台输出 mybatis 中的sql语句
控制台输出 mybatis 中的sql语句 在 log4j.xml 文件中 增加如下配置 <!-- mybatis 输出的sql,DEBUG级别 --> <logger name=& ...
- Springboot中mybatis控制台打印sql语句
Springboot中mybatis控制台打印sql语句 https://www.jianshu.com/p/3cfe5f6e9174 https://www.jianshu.com/go-wild? ...
- 详解Java的MyBatis框架中SQL语句映射部分的编写
这篇文章主要介绍了Java的MyBatis框架中SQL语句映射部分的编写,文中分为resultMap和增删查改实现两个部分来讲解,需要的朋友可以参考下 1.resultMap SQL 映射XML 文件 ...
- mybatis中打印sql语句
在mybatis-config.xml中properties节点下,配置一个settings节点 <settings> <setting name="cacheEnable ...
- mybatis 的动态sql语句是基于OGNL表达式的。
mybatis 的动态sql语句是基于OGNL表达式的.可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. c ...
- MyBatis中动态SQL语句完成多条件查询
一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...
- mybatis mapper文件sql语句传入hashmap参数
1.怎样在mybatis mapper文件sql语句传入hashmap参数? 答:直接这样写map就可以 <select id="selectTeacher" paramet ...
- Mybatis中动态SQL语句中的parameterType不同数据类型的用法
Mybatis中动态SQL语句中的parameterType不同数据类型的用法1. 简单数据类型, 此时#{id,jdbcType=INTEGER}中id可以取任意名字如#{a,jdbcType ...
- mybatis日志,打印sql语句,输出sql
mybatis日志,打印sql语句,输出sql<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE ...
随机推荐
- css 水平、垂直居中
水平居中 行内元素 行内元素:(img.span.文字等行内元素),通过在父级元素设置 text-align:center 使元素水平居中. 块级元素 块级元素:(div.p.h1...h6.ul.l ...
- cordova 从xcode7迁移到xcode8
环境以开发流程 当前项目使用的cordova环境 cordova 6.1.1 cordova-ios 3.9.2(vs15自动装的不知道在哪能改,所以考虑升级到vs17,能够手动指定) cordova ...
- 微信开发,调用js-SDK接口
微信开发,调用js-SDK接口<!DOCTYPE html><html><head lang="en"> <meta charset=&q ...
- Django项目上传到AWS服务器上
EC2是亚马逊(Amazon.com)提供的弹性云计算服务:Apache是一个跨平台的Web服务器端软件,可以使Python.PHP.Perl等语言编写的程序运行在服务器上:Django是一个Web程 ...
- C/C++——C语言跳出多重循环方法
c语言的break语句只能跳出离它最近的一层循环,但是我们有时候需要跳出多层循环,以下有几种跳出多重循环的方法: 1. 使用goto ; i < MAX1; i++) { ; j < MA ...
- java并发-同步容器类
java平台类库包含了丰富的并发基础构建模块,如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类. 同步容器类 同步容器类包括Vector和Hashtable,是早期JDK的一部分 ...
- linux命令:crontab命令(转)
一.crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动cro ...
- 自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第三部分
前面两篇介绍了SOM的基本概念和算法,第一部分,第二部分,本篇具体展开一下应用中的一些trick设定. SOM设计细节 输出层设计 输出层神经元数量设定和训练集样本的类别数相关,但是实际中我们往往不能 ...
- Porting of cURL to Android OS using NDK (from The Software Rogue)
Porting of cURL to Android OS using NDK In continuing my journey into Android territory, I decided ...
- iptables配置文件
https://www.cnblogs.com/itxiongwei/p/5871075.html