写点什么

MyBatis 官方文档 - 日志,java 高级开发工程师职责

用户头像
极客good
关注
发布于: 刚刚

你可以对包、映射类的全限定名、命名空间或全限定语句名开启日志功能来查看 MyBatis 的日志语句。


再次说明下,具体怎么做,由使用的日志工具决定,这里以 Log4J 为例。配置日志功能非常简单:添加一个或多个配置文件(如 log4j.properties),有时需要添加 jar 包(如 log4j.jar)。下面的例子将使用 Log4J 来配置完整的日志服务,共两个步骤:

步骤 1:添加 Log4J 的 jar 包

因为我们使用的是 Log4J,就要确保它的 jar 包在应用中是可用的。要启用 Log4J,只要将 jar 包添加到应用的类路径中即可。Log4J 的 jar 包可以在上面的链接中下载。


对于 web 应用或企业级应用,则需要将 log4j.jar 添加到 WEB-INF/lib 目录下;对于独立应用,可以将它添加到 JVM 的 -classpath 启动参数中。

步骤 2:配置 Log4J

配置 Log4J 比较简单,假如你需要记录这个映射器接口的日志:


package org.mybatis.example;


public interface BlogMapper {


@Select("SELECT * FROM blog WHERE id = #{id}")


Blog selectBlog(int id);


}


在应用的类路径中创建一个名称为 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 的详细执行操作,且仅记录应用中其它类的错误信息(若有)。


你也可以将日志的记录方式从接口级别切换到语句级别,从而实现更细粒度的控制。如下配置只对 selectBlog 语句记录日志:


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


与此相对,可以对一组映射器接口记录日志,只要对映射器接口所在的包开启日志功能即可:


log4j.logger.org.mybatis.example=TRACE


某些查询可能会返回庞大的结果集,此时只想记录其执行的 SQL 语句而不想记录结果该怎么办?为此,Mybatis 中 SQL 语句的日志级别被设为 DEBUG(JDK 日志设为 FINE),结果的日志级别为 TRACE(JDK 日志设为 FINER)。所以,只要将日志级别调整为 DEBUG 即可达到目的:


log4j.logger.org.mybatis.example=DEBUG


要记录日志的是类似下面的映射器文件而不是映射器接口又该怎么做呢?


<?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.m


【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


ybatis.example.BlogMapper">


<select id="selectBlog" resultType="Blog">


select * from Blog where id = #{id}


</select>


</mapper>


如需对 XML 文件记录日志,只要对命名空间增加日志记录功能即可:


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


要记录具体语句的日志可以这样做:


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


你应该注意到了,为映射器接口和 XML 文件添加日志功能的语句毫无差别。


注意 如果你使用的是 SLF4J 或 Log4j 2,MyBatis 将以 MYBATIS 这个值进行调用。

用户头像

极客good

关注

还未添加个人签名 2021.03.18 加入

还未添加个人简介

评论

发布
暂无评论
MyBatis官方文档-日志,java高级开发工程师职责