服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - logback中显示mybatis查询日志文件并写入的方法示例

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

2022-10-18 15:19KimZing Java教程

这篇文章主要为大家介绍了logback中显示mybatis查询日志文件并写入的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

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

在logback中显示mybatis查询日志

一、配置文件

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

?
1
2
3
mybatis:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

二、定制包的日志level

?
1
2
3
4
logging:
  level:
    #你的repository的包
    com.kingboy.repository: debug

三、通过logback-spring.xml文件

在文件中新增如下配置

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

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

springboot+mybatis

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

具体实现方式是重写StdOutImpl类

实现方式如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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: 2021/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);
    }
}

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

?
1
2
3
4
5
6
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查询日志文件并写入的资料请关注服务器之家其它相关文章!

原文链接:https://blog.csdn.net/kingboyworld/article/details/78644416

延伸 · 阅读

精彩推荐