MyBatis日志

MyBatis日志

这节使用新项目 MyBatis-04(同 MyBatis-03 ),研究一下 MyBatis 日志的配置使用。

1. 日志工厂

以前直接使用 JDBC 时,如果一个数据库操作出现了问题,一般只能使用 sout 和 debug 来发现问题;现在 MyBatis 日志就是最好的帮手!

要在 MyBatis 中使用日志,需要在 mybatis-config.xml 中进行配置

设置名 描述 有效值 默认
logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING 未设置

其中,有几个比较重要的日志格式

  • STDOUT_LOGGING:标准日志
  • LOG4J:即 Java 日志( Log for Java),下面要用到的日志格式
  • LOG4J2:即 LOG4J 的升级版
  • SLF4J:即简单日志门面( Simple Logging Facade for Java ),不是具体的日志解决方案,它只服务于各种各样的日志系统,以后会了解

此处先使用标准日志了解一下日志的作用,在 mybatis-config.xml 中配置

<settings>
    <!--标准的日志工厂实现-->
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

注意:这里的配置要完全遵守格式,大小写不能错,也不能多加空格,否则会报错!

配置完日志后再运行根据 ID 查询的 Test 方法,控制台输出的日志内容为

// 日志初始化 加载 StdOutImpl 适配器
Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
// ...
// 打开 JDBC 连接 说明 MyBatis 的本质还是 JDBC 只不过封装起来了
Opening JDBC Connection
Loading class `com.mysql.jdbc.Driver'. // ...
// 获取了一个连接!
Created connection 1263668904.
// 设置事务开启
Setting autocommit to false on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@4b520ea8]
// 执行的 SQL 语句 看的很清楚!
==>  Preparing: select * from mybatis.user where id = ?
// 参数
==> Parameters: 1(Integer)
// 执行结果 列名 行 总数
<==    Columns: id, name, pwd
<==        Row: 1, 祈鸢, 123456
<==      Total: 1
// 测试的输出
User{id=1, name='祈鸢', password='123456'}
// 关闭事务
Resetting autocommit to true on JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@4b520ea8]
// 关闭 JDBC 连接
Closing JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@4b520ea8]
// 将获取的连接返回到 连接池 pool 中! 此处可以帮助理解连接池
Returned connection 1263668904 to pool.

从这里例子就可以看出日志的强大了,底裤都看穿了

上一篇:SpringBoot-整合Dubbo+Zookeeper


下一篇:ssm框架中,mybatis的sql语句日志输出