【原】配置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”⽬录下,创建l⽂件,并且输⼊下列内容。
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE configuration
3    PUBLIC "-////DTD Config 3.0//EN"
4    "/dtd/mybatis-3-config.dtd">
5<configuration>
6<settings>
7<setting name="lazyLoadingEnabled" value="false"/>
8<setting name="logImpl" value="LOG4J"/>
9</settings>
10</configuration>
⼆、配置log4j的配置⽂件。
不同的项⽬中,log4j的配置⽂件的格式可能不同,在⼀些项⽬中,log4j的配置⽂件是XML格式的,⽐如l;在另⼀些项⽬中,log4j 的配置⽂件是properties格式的,⽐如log4j.properties。
备注:properties格式⽂件的配置⼀般只在⽼的项⽬中存在,新的互联⽹类项⽬,⼀般都是XML格式。
1、对于properties格式⽂件的配置。
1 >>>Log4j 4 SQL Output start>>>##
2 dao=DEBUG
3 log4j.logger.springframework=DEBUG
4 log4j.logger.ibatis=DEBUG
5 log4j.logger.ibatismon.jdbc.SimpleDataSource=DEBUG
6 log4j.logger.ibatismon.jdbc.ScriptRunner=DEBUG
7 log4j.logger.ine.impl.SqlMapClientDelegate=DEBUG
8 log4j.logger.java.sql.Connection=DEBUG
9 log4j.logger.java.sql.Statement=DEBUG
10 log4j.logger.java.sql.PreparedStatement=DEBUG
11 log4j.logger.java.sql.ResultSet=DEBUG
12 apache.ibatis.loggingmons.JakartaCommonsLoggingImpl=DEBUG
13 log4j.logger.java.sql=DEBUG,CONSOLE
14 >>>Log4j 4 SQL Output end>>>####
2、对于xml格式⽂件的配置。
1<loggers>
2<!-- name可以指定包名或具体的类;additivity如果指定true,则root logger也会⽣效,相同⽇志会输出两次;false,则只有当前⽇志⽂件输出 -->
3<!-- 借据插⼊接⼝⽇志 -->
4<logger level="info" name="insertCreditBill" additivity="false">
5<appender-ref ref="insertCreditBillLog"/>
6</logger>
7
8<!-- 下⾯是打印通过log4j2打印出mybatis语句的配置-->
9<logger name="dao">
10<level>DEBUG</level>
11</logger>
12<logger name="com.springframework">
13<level>DEBUG</level>
14</logger>
15<logger name="com.ibatis" additivity="true">
16<level>DEBUG</level>
17</logger>
18<logger name="com.ibatismon.jdbc.SimpleDataSource" additivity="true">
19<level>DEBUG</level>
20</logger>
21<logger name="com.ibatismon.jdbc.ScriptRunner" additivity="true">
22<level>DEBUG</level>
23</logger>
24<logger name="com.ine.impl.SqlMapClientDelegate" additivity="true">
25<level>DEBUG</level>
26</logger>
27<logger name="Java.sql.Connection" additivity="true">
28<level>DEBUG</level>
29</logger>
30<logger name="java.sql.Statement" additivity="true">
31<level>DEBUG</level>
32</logger>
33<logger name="java.sql.PreparedStatement" additivity="true">
34<level>DEBUG</level>
35</logger>
36<logger name="java.sql.ResultSet" additivity="true">
37<level>DEBUG</level>
38</logger>
39<logger name="org.apache.ibatis.loggingmons.JakartaCommonsLoggingImpl" additivity="true">
40<level>DEBUG</level>
41</logger>
42
43<!-- root logger,任何其它的logger最终都相当于继承⾃ root logger -->
44<root level="INFO">
45<appenderRef ref="Console"/>
46<appenderRef ref="FileLog"></appenderRef>
47</root>
48</loggers>
说明:
上述配置中,“dao”为⾃⼰项⽬中MyBatis的所有的mapper和xml⽂件所在的包名字。
⾄此,log4j的打印SQL语句的配置完成。
log4j2不打印日志3、XML格式配置的精简版本
1<loggers>
2<!-- 下⾯是打印通过log4j2打印出mybatis语句的配置-->
3<logger name="dao">
4<level>DEBUG</level>
5</logger>
6
7<!-- root logger,任何其它的logger最终都相当于继承⾃ root logger -->
8<root level="INFO">
9<appenderRef ref="Console"/>
10<appenderRef ref="FileLog"></appenderRef>
11</root>
12</loggers>
说明:
  在开发中,需要配置让哪个包下的程序打印出SQL,则仅仅只⽤配置那⼀个包名就成。
  上述配置中,“dao”为⾃⼰项⽬中MyBatis的mapper和xml⽂件所在的包名字,因此,精简版中,仅仅配置了这个包的内容【拓展】
“细粒度”控制:Log4j打印出MyBatis中仅仅单个Mapper的配置。
<!-- 下⾯是通过配置log4j2,仅仅打印出单个mapper的SQL语句的配置-->
<logger name="com.beebank.dao.iface.UserMapper">
<level>DEBUG</level>
</logger>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

finereport 打印sql日志
« 上一篇
log4j中文手册
下一篇 »

发表评论