Mytatis-plus使用sl4j日志打印SQL

以下是关于使用 Spring Boot 起始器替换 slf4j-apilogback 依赖的详细步骤和注意事项,包括 MyBatis-Plus 的默认日志级别信息。

1、依赖项配置

pom.xml 中添加以下依赖项:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId>
</dependency><!-- MyBatis-Plus Starter -->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>最新版本</version> <!-- 请根据需要替换为最新版本 -->
</dependency><!-- Spring Boot Starter Logging (已包含 SLF4J 和 Logback) -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId>
</dependency>

注意事项

  1. 依赖冲突

    • 使用 Spring Boot 起始器时,通常会自动引入 SLF4J 和 Logback,因此不需要手动添加 slf4j-apilogback-classic。如果手动添加,可能会导致依赖冲突。
  2. 默认日志级别

    • MyBatis-Plus 的默认日志级别是 INFO,这意味着如果不显式配置,只有 INFO 级别及以上的日志信息会被记录和输出。因此,为了查看 SQL 日志,通常需要将 MyBatis 的日志级别设置为 DEBUG
  3. 自动配置

    • Spring Boot 会自动配置日志系统,通常不需要手动设置 logback.xmllogback-spring.xml。系统会使用默认配置来处理日志记录。
  4. 日志级别配置

    • 你可以通过 application.ymlapplication.properties 文件来配置日志级别,确保正确设置相应包的日志级别,特别是你的业务包和 MyBatis 相关的包。
      level:com.yyy: debug   # 设置你自己的包的日志级别org.apache.ibatis: debug  # 设置 MyBatis 的日志级别为 debug
    
  5. 使用 logback-spring.xml

    • 如果需要对日志记录进行更细粒度的控制,例如自定义日志格式或输出位置,可以创建一个 logback-spring.xml 文件。这是推荐的方式,因为 Spring Boot 会优先使用此文件。

2、logback-spring.xml 文件配置(可选)

src/main/resources 目录下创建 logback-spring.xml 文件,并根据需要进行配置:

    <!-- 控制台输出 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern></encoder></appender><!-- 根日志配置 --><root level="debug"><appender-ref ref="STDOUT" /></root><!-- MyBatis 日志配置 --><logger name="org.apache.ibatis" level="debug" />
</configuration>

日志配置的详细说明

  1. Appenders
    • ConsoleAppender:将日志输出到控制台。你可以根据需要添加更多的 appender,例如 FileAppender,将日志输出到文件。
  2. Loggers
    • root:定义根日志级别和输出目标。所有未特别指定的包的日志将继承此配置。
    • logger:为特定包设置日志级别。可以根据需要添加多个 logger。
  3. 模式
    • %d{yyyy-MM-dd HH:mm:ss}:日志输出的时间格式。
    • %-5level:日志级别的宽度设置。
    • [%thread]:输出当前线程。
    • %logger{36}:输出记录日志的类名,最大长度为 36。
    • %msg:输出日志消息。
    • %n:换行符。

总结

通过使用 Spring Boot 的 spring-boot-starter-logging 依赖,可以更轻松地集成 SLF4J 和 Logback,而无需担心版本冲突或配置问题。在需要自定义日志输出时,使用 logback-spring.xml 文件进行配置是最佳实践。同时,确保正确设置日志级别,特别是将 MyBatis 的日志级别设置为 DEBUG,以便在开发和调试过程中能够看到所需的 SQL 日志信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/57540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字符串使用方法:

字符串: -- 拼接字符串 SELECT CONCAT(糯米,啊啊啊撒,删掉); -- 字符长度 SELECT LENGTH(asssssssggg); -- 转大写 SELECT UPPER(asdf); -- 转小写 SELECT LOWER(ASDFG); -- 去除左边空格 SELECT LTRIM( aaaasdrf ); -- 去除右边空格 SELECT RTRIM( aaaasdff ); -- 去除两端…

攻坚金融关键业务系统,OceanBase亮相2024金融科技大会

10月15-16日&#xff0c;第六届中新数字金融应用博览会与2024金融科技大会&#xff08;简称“金博会”&#xff09;在苏州工业园区联合举办。此次大会融合了国家级重要金融科技资源——“中国金融科技大会”&#xff0c;围绕“赋能金融高质量发展&#xff0c;金融科技创新前行”…

【C++指南】运算符重载详解

引言 C 提供了运算符重载这一特性&#xff0c;允许程序员为自定义类型&#xff08;如类和结构体&#xff09;定义运算符的行为。 通过运算符重载&#xff0c;可以使自定义类型对象像内置类型一样使用运算符&#xff0c;从而提高代码的可读性和易用性。 本文将详细介绍 C 中运算…

【状态机DP】力扣2786. 访问数组中的位置使分数最大

给你一个下标从 0 开始的整数数组 nums 和一个正整数 x 。 你 一开始 在数组的位置 0 处&#xff0c;你可以按照下述规则访问数组中的其他位置&#xff1a; 如果你当前在位置 i &#xff0c;那么你可以移动到满足 i < j 的 任意 位置 j 。 对于你访问的位置 i &#xff0c…

若依微服务15 - RuoYi-Vue3 实现前端独立运行

正文开始&#xff1a; RuoYi-Vue3 使用 Vue3 Element Plus Vite 技术栈。 GitHub 开源地址&#xff1a;https://github.com/yangzongzhuan/RuoYi-Vue3 本文介绍使用若依提供的在线后端接口&#xff0c;仅启动前端项目并进行界面开发&#xff0c;而无需启动后端服务。 一、克隆…

AI视听新体验!浙大阿里提出视频到音乐生成模型MuVi:可解决语义对齐和节奏同步问题

MuVi旨在解决视频到音乐生成(V2M)中的语义对齐和节奏同步问题。 MuVi通过专门设计的视觉适配器分析视频内容,以提取上下文 和时间相关的特征,这些特征用于生成与视频的情感、主题及其节奏和节拍相匹配的音乐。MuVi在音频质量和时间同步方面表现优于现有基线方法,并展示了其在风…

Clickhouse集群_Zookeeper配置的dataDir目录磁盘占有率接近100%时,该dataDir目录是否可以清理及如何清理的脚本

官方文档https://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#OngoingDataDirectoryCleanup 监控报警发现clickhouse集群环境的数据库节点磁盘报警&#xff0c;检查下来发现/chdata/zookeeper/data/version-2/目录特别大&#xff0c;里面包含了log.*文件和snapshot.…

【前端】--- ES6上篇(带你深入了解ES6语法)

前言&#xff1a;ECMAScript是 JavaScript 的标准化版本&#xff0c;由 ECMA 国际组织制定。ECMAScript 定义了 JavaScript 的语法、类型、语句、关键字、保留字等。 ES6 是 ECMAScript 的第六个版本&#xff0c;于 2015 年发布&#xff0c;引入了许多重要的新特性&#xff0c;…

实现vuex源码,手写

实现vuex源码&#xff0c;手写 Vuex 是专门为 Vue.js 应用程序开发的状态管理模式 库&#xff0c;它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。 第一步&#xff1a;定义初始化Store类 创建文件夹store/vuex.js 1…

C++ 20 Concept

concept主要用来定义模板参数的约束&#xff0c;最明显的作用就是在模板参数不满足类型的约束时编译器不再给出几千行奇奇怪怪的错误。当然还有其它的作用&#xff0c;比如说concepts可以用来实现函数的重载、新的concepts可以基于已有的concepts定义从而进行扩展等等下面以实现…

k8s 部署 nexus3 详解

创建命名空间 nexus3-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: nexus-ns创建pv&pvc nexus3-pv-pvc.yaml apiVersion: v1 kind: PersistentVolume metadata:name: nfs-pvnamespace: nexus-ns spec:capacity:storage: 3GiaccessModes:- ReadWriteM…

Redis的6.0以上为啥又支持多线程

Redis 在 6.0 版本之前一直采用单线程架构&#xff0c;这是因为 Redis 主要是内存操作&#xff0c;单线程模型足以应对大部分高性能场景。而单线程模型的优势在于避免了多线程带来的上下文切换和锁的开销&#xff0c;使得 Redis 保持极高的性能和简单性。 然而&#xff0c;随着…

C++:模板的特化与分离编译

之前我们在介绍模板的时候仅仅是简单的介绍了模板的用法&#xff0c;本篇文章我们来详细的介绍下模板中比较重要的几个点。 一&#xff0c;非类型模板参数 我们之前的c中&#xff0c;会将经常使用的而又确保在我们程序的运行过程中值不会改变的值进行#define&#xff1a; #d…

初入编程之路,启航代码海

#1024程序员节|征文# 前言 今天又是1024程序员节了&#xff0c;第一次听说这个节日是在我在23年刚刚上大一的时候听学长他们说的&#xff0c;如今已经是24年了&#xff0c;虽然只学习了一年的编程但我已经了解到了这条路上的不易。希望能够在这条路上面一路坚持下去&#xff0…

力扣_斐波那契数列

本题目本质和爬楼梯是一样的&#xff0c;主要运用的是递归来解题。 class Solution:my_dict {}def fib(self, n: int) -> int:if self.my_dict.get(n) is not None: # 先判断有没有计算过这个值return self.my_dict.get(n)tempResult 0if n > 2:tempResult self.fib…

Java基础15-Java高级(单元测试、反射、注解、动态代理)

十五、Java高级 单元测试、反射、注解、动态代理。 1、单元测试 定义&#xff1a;就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。 1.1 Junit单元测试框架 可以用来对方 法进行测试&#xff0c;它是第三方公司开源出来的(很多开发工具已经集成了Junit框架&…

075_基于springboot的万里学院摄影社团管理系统

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍&#xff1a;CodeMentor毕业设计领航者、全网关注者30W群落&#xff0c;InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者&#xff0c;博客领航之星、开发者头条/腾讯云/AW…

MySql中使用findInSet和collection实践

FIND_IN_SET 需求如下&#xff1a;有张用户表&#xff0c;表里有个字段叫school&#xff0c;意为这个用户上过哪些学校&#xff0c;数据库里存的就是字符串类型&#xff0c;存的值类似"2,5,12"&#xff0c;要求就是查询出上过id为2的学校有哪些用户 解决方法&#x…

【JAVA毕设】基于JAVA的酒店管理系统

一、项目介绍 本系统前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router实现动态路由&#xff0c;Ajax实现前后端通信&#xff0c;Element-plus组件库使页面快速成型。后端部分&#xff1a;采用SpringBoot作为开发框架&#xff0c;同时集成MyBatis、Redis、…

分布式存储架构 与分布式一致性协议

分布式存储架构可以分为无中心节点架构和有中心节点架构。它们的设计在系统中的角色分配、数据管理、协调方式等方面有所不同。 1. 无中心节点架构&#xff08;Decentralized/Peer-to-Peer Architecture&#xff09; 在无中心节点的分布式存储架构中&#xff0c;所有节点都是…