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"> |