9.3.2 log4j.xml配置日志
9.3.2 log4j.xml配置日志
之前的Java项目都是采取properties文件作为配置文件,而最新的项目大多采用XML文件作为配置文件。
对mapper接口的日志配置
在应用的CLASSPATH中增加一个名称为log4j.xml的文件
文件的具体内容如下:
1 |
|
类级别的日志
添加以上配置后,Log4j就会把org.fkit.mapper.UserMapper的TRACE(详细执行)日志记录下来,对于应用中的其他类则仅仅记录ERROR(错误信息)。
语句级别的日志
也可以将日志从整个mapper接口级别调整到语句级别,从而实现更细粒度的控制。如下配置只记录selectUser语句的日志:
<logger name="org.fkit.mapper.UserMapper.selectUser">
<level value="TRACE" />
</logger>
包级别的日志
也可以对一组mapper接口记录日志,只要对mapper接口所在的包开启日志功能即可:
1 | <logger name="org.fkit.mapper"> |
日志只记录执行的SQL语句
某些查询可能会返回大量的数据,如果只想记录其执行的SQL语句该怎么办? 为此,
MyBatis中SQL语句的日志级别被设为DEBUG(JDK Logging中为FINE),- 结果日志的级别为
TRACE(JDK Logging中为FINER)。
所以,只要将日志级别调整为DEBUG即可:
1 | <logger name="org.fkit.mapper"> |
如果要记录日志的是类似下面的mapper文件而不是mapper接口又该怎么办呢?
对mapper文件的日志配置
如果要记录日志的是类似下面的mapper文件而不是接口又该怎么办呢?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace指用户自定义的命名空间。 -->
<mapper namespace="org.fkit.mapper.UserMapper">
<insert
id="saveUser"
parameterType="user"
useGeneratedKeys="true"
keyProperty="id"> insert into tb_user(name,sex,age) values(#{name},#{sex},#{age})
</insert>
</mapper>
只要对命名空间增加日志记录功能即可:
类级别的日志
1 | <logger name="org.fkit.mapper.UserMapper"> |