信息发布→ 登录 注册 退出

logback中显示mybatis查询日志文件并写入的方法示例

发布时间:2026-01-11

点击量:
目录
  • 在logback中显示mybatis查询日志
    • 一、配置文件
    • 二、定制包的日志level
    • 三、通过logback-spring.xml文件
  • 将操作数据库sql记录到日志文件中

    网上看了很多篇文章关于如何配置mybatis的logback日志的,复杂的简单的都有,但是有用的没几个,耽误了很多时间。通过对logback的学习,以下方式是一定可行的,希望可以为大家节省点时间。通常我们可以通过如下配置将操作数据库的sql语句打印到控制台上,但是如何将这些sql语句记录到日志文件中方便我们查询问题呢?

    在logback中显示mybatis查询日志

    一、配置文件

    可以有多种不同的实现,以下是将日志输出到控制台

    mybatis:
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

    二、定制包的日志level

    logging:
      level:
        #你的repository的包
        com.kingboy.repository: debug

    三、通过logback-spring.xml文件

    在文件中新增如下配置

    <configuration>
    //添加这部分内容,改为自己的包路径
    <logger name="com.kingboy.repository" level="DEBUG" />
    <configuration>

    将操作数据库sql记录到日志文件中

    springboot+mybatis

    mybatis:
      # 标注待解析的mapper的xml文件位置
      mapper-locations: classpath:mapper/*.xml
      configuration:
        # org.apache.ibatis.logging.slf4j.Slf4jImpl
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    

    具体实现方式是重写StdOutImpl类

    实现方式如下:

    package com.emily.infrastructure.datasource.log;
    import com.emily.infrastructure.logback.factory.LogbackFactory;
    import org.apache.ibatis.logging.Log;
    /**
    * @Description: 将mybatis sql语句记录到日志文件中实现类,是org.apache.ibatis.logging.stdout.StdOutImpl类的替换
    * @Author: Emily
    * @create: 2025/8/22
    */
    public class LogBackImpl implements Log {
        public LogBackImpl(String clazz) {
            // Do Nothing
        }
        @Override
        public boolean isDebugEnabled() {
            return true;
        }
        @Override
        public boolean isTraceEnabled() {
            return true;
        }
        @Override
        public void error(String s, Throwable e) {
            LogbackFactory.module("database", "database", s);
            e.printStackTrace(System.err);
        }
        @Override
        public void error(String s) {
            LogbackFactory.module("database", "database", s);
        }
        @Override
        public void debug(String s) {
            LogbackFactory.module("database", "database", s);
        }
        @Override
        public void trace(String s) {
            LogbackFactory.module("database", "database", s);
        }
        @Override
        public void warn(String s) {
            LogbackFactory.module("database", "database", s);
        }
    }
    

    要想重写的实现类生效,需将配置替换为实现类,如下:

    mybatis:
      # 标注待解析的mapper的xml文件位置
      mapper-locations: classpath:mapper/*.xml
      configuration:
        # org.apache.ibatis.logging.slf4j.Slf4jImpl
        log-impl: com.emily.infrastructure.datasource.log.LogBackImpl
    

    以上就是logback中显示mybatis查询日志文件并写入的方法示例的详细内容,更多关于logback显示mybatis查询日志文件并写入的资料请关注其它相关文章!

    在线客服
    服务热线

    服务热线

    4008888355

    微信咨询
    二维码
    返回顶部
    ×二维码

    截屏,微信识别二维码

    打开微信

    微信号已复制,请打开微信添加咨询详情!