Code Ease Code Ease
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档

神秘的鱼仔

你会累是因为你在走上坡路
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档
服务器
  • Java核心基础

  • 框架的艺术

    • Spring

    • Mybatis

      • Mybatis的原理介绍及超详细使用
      • Mybatis增删改查,这一篇足以
      • Mybatis配置详细解析
      • MyBatis实现复杂环境的Sql查询
      • Mybatis日志原来是这样使用的
        • (一)关于Mybatis日志
        • (二)使用STDOUT_LOGGING输出标准日志
        • (三)使用Log4J日志
      • Mybatis动态Sql详解
      • Mybatis缓存详解
      • 想在一个项目中实现多数据源切换?几行代码就搞定了
      • 用了MybatisPlus后,我很久没有手写sql了
      • 用了MyBatis的项目 如何优雅地打印SQL
    • SpringBoot

    • MQ

    • Zookeeper

    • netty

  • 分布式与微服务

  • 开发经验大全

  • 版本新特性

  • Java
  • 框架的艺术
  • Mybatis
CodeEase
2023-09-20
目录

Mybatis日志原来是这样使用的

作者:鱼仔
博客首页: codeease.top (opens new window)
公众号:Java鱼仔

# (一)关于Mybatis日志

日志作为定位问题最重要的依据之一,在任何系统下都是不可或缺的,Mybatis 通过使用内置的日志工厂提供日志功能。在前面讲设置的时候,我们已经看到了Mybatis可以配置以下几种日志工厂:

5-1.png

可选的值有:SLF4J、LOG4J、LOG4J2、JDK_LOGGING、COMMONS_LOGGING、STDOUT_LOGGING、NO_LOGGING,或者是实现了 org.apache.ibatis.logging.Log 接口,且构造方法以字符串为参数的类完全限定名。

# (二)使用STDOUT_LOGGING输出标准日志

我们先使用标准的日志输出功能,首先在Mybatis-config.xml

<settings>
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
1
2
3

我们跑一段简单的sql来看一下日志的输出

5-2.png

在日志中可以清楚的看到JDBC的连接信息,执行的sql,获取到的结果等信息。

# (三)使用Log4J日志

log4J日志相信大家都不陌生,至少在我工作的这段经历里,日志框架就只用了log4j,还是一样的步骤,首先在设置中将logImpl的值设置为LOG4J

<settings>
    <setting name="logImpl" value="LOG4J"/>
</settings>
1
2
3

Mybatis的系统内部是不包含这些外部日志框架的,因此需要引入依赖:

导入log4j的依赖

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
1
2
3
4
5

接着配置log4j,新建一个log4j.properties

## 全局日志配置
log4j.rootLogger=ERROR, stdout,logfile
## MyBatis 日志配置
log4j.logger.com.javayz.mapper.UserMapper=TRACE
## 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

#### 把日志信息输出到文件:jbit.log ###
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=jbit.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
1
2
3
4
5
6
7
8
9
10
11
12
13
14

上面的这段配置将详细打印javayz.mapper.UserMapper的日志,对于其他的部分只打印错误信息,同时把日志写入jbit.log中。

5-3.png

通过下面的配置只打印部分语句的日志:

log4j.logger.com.javayz.mapper.UserMapper.getUserById=TRACE
1

也可以打印一整组映射器的日志

log4j.logger.com.javayz.mapper=TRACE
1

SQL 语句将会在 DEBUG 日志级别下记录,因此只想查看 SQL 语句,而忽略返回的结果集,可以将日志等级设置为DEBUG:

log4j.logger.com.javayz.mapper=DEBUG
1

5-4.png

至于更多有关log4j的内容,在Mybatis的学习中就不做过多介绍了。

上次更新: 2025/04/29, 17:22:06
MyBatis实现复杂环境的Sql查询
Mybatis动态Sql详解

← MyBatis实现复杂环境的Sql查询 Mybatis动态Sql详解→

最近更新
01
AI大模型部署指南
02-18
02
半个月了,DeepSeek为什么还是服务不可用
02-13
03
Python3.9及3.10安装文档
01-23
更多文章>
Theme by Vdoing | Copyright © 2023-2025 备案图标 浙公网安备33021202002405 | 浙ICP备2023040452号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式