【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 configuration
PUBLIC "-//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_NAME
FROM 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