MyBatisMyBatis:打印SQL 日志

安排Log4J比较简单, 比如需要记录者mapper接口的日志:

package org.mybatis.example;
public interface BlogMapper {
  @Select("SELECT * FROM blog WHERE id = #{id}")
  Blog selectBlog(int id);
}

 

使以用之classpath中开创一个名为log4j.properties的公文,
文件的具体内容如下:

# Global logging configuration
log4j.rootLogger=ERROR, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

长上述配置后,Log4J就见面把 org.mybatis.example.BlogMapper 的详实实施日志记录下来,对于利用中之其它类则仅仅记录错误信息。

为得以用日志从全mapper接口级别调整及到讲话级别,从而实现再次仔细粒度的决定。如下配置才记录 selectBlog 语句子之日记:

log4j.logger.org.mybatis.example.BlogMapper.selectBlog=TRACE

 

同之相对,可以对相同组mapper接口记录日志,只要本着mapper接口所当的保管打开日志功能即可:

log4j.logger.org.mybatis.example=TRACE

 

或多或少查询可能会见回大量底数据,只想记录该推行之SQL语句该怎么收拾?为之,Mybatis中SQL语
句的日志级别为设为DEBUG(JDK
Logging中为FINE),结果日志的级别为TRACE(JDK
Logging中吗FINER)。所以,只要用日志级别调整为DEBUG即可达到目的:

log4j.logger.org.mybatis.example=DEBUG

 

设若记录日志的凡相近下面的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">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

 

对是文件记录日志,只要本着命名空间多日志记录功能即可:

log4j.logger.org.mybatis.example.BlogMapper=TRACE

 

越是,要记录具体语句之日记可以如此做:

log4j.logger.org.mybatis.example.BlogMapper.selectBlog=TRACE

 

目了吧,两种配备没差别!

配备文件log4j.properties的盈余内容是指向日志格式的,这同内容早已超越本
文档范围。关于Log4J的又多内容,可以参考Log4J的网站。不过,可以略试一下看望,不同的安排
会产生什么不等同的法力。

网站地图xml地图