【1】maven配置jar包依赖, 如下:
<!-- 日志jar --><!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>2.11.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.11.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>2.11.1</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>2.11.1</version></dependency></dependencies>
【2】配置log4j2.xml 文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %l %msg%n"/></Console></Appenders><Loggers><Root level="error"><AppenderRef ref="Console"/></Root><Logger name="com.swjtu.crud.dao" level="DEBUG or TRACE" additivity="false"><AppenderRef ref="Console"/></Logger></Loggers>
</Configuration>
Logger 标签 配置了需要打印日志的mapper(Mapper类或mapper XML 文件所在包)
Logger标签中的 level属性取值为 DEBUG 或者 TRACE,(取其一)
【3】mybatis配置文件 mybatis-config.xml 中设置日志的工具类, 如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="dbconfig.properties"></properties><settings><!-- 驼峰命名规则 --><setting name="mapUnderscoreToCamelCase" value="true"/><!-- 配置日志工具 --><setting name="logImpl" value="LOG4J2" /></settings><typeAliases><package name="com.swjtu.crud.bean" /></typeAliases><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin></plugins><environments default="development"><!-- 开发环境 --><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></dataSource></environment></environments><mappers><mapper resource="com\swjtu\crud\dao\dept.mapper.xml"/></mappers></configuration>
【4】日志打印效果:
20:35:28.742 [main] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) ==> Preparing: SELECT dept_id AS DEPT_ID , dept_name AS DEPT_NAME FROM dept_tbl WHERE rcrd_id IN ( ? , ? , ? )
20:35:28.786 [main] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) ==> Parameters: 1(String), 2(String), 3(String)
20:35:28.807 [main] DEBUG org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(BaseJdbcLogger.java:181) <== Total: 3
打印sql为:
<!-- 查询部门列表 --> <select id="getDeptList" resultType="map"> SELECT dept_id AS DEPT_ID , dept_name AS DEPT_NAMEFROM dept_tbl WHERE rcrd_id IN (<foreach collection="LIST" item="item" separator=", ">#{item} </foreach> ) </select>
References are as follows.
http://www.mybatis.org/mybatis-3/zh/logging.html
https://blog.csdn.net/honghailiang888/article/details/52594014