slf4j + logback配置打印sql

本文介绍如何在项目中配置POM和Logback来实现有效的日志系统,包括引入依赖、配置Logback核心组件及设置特定模块的日志级别。
[size=large]
参考:[url]http://feitianbenyue.iteye.com/blog/1882887[/url]

pom.xml配置:[/size]

<!-- Logging -->
<slf4j.version>1.7.6</slf4j.version>
<logback.version>1.1.1</logback.version>

<dependencies>

<!--******** logback and slf4j ******** -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>${logback.version}</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>

<!--jul桥接 用来输出 Java Logging Framework (JUL) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>

<!-- jcl桥接,用来输出 第三方Jakarta Commons Logging (JCL) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log4j桥接,用来输出 JAR包中log4j Logging (log4j) -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>

</dependencies>


[size=large]logback.xml配置:[/size]

<logger name="com.ibatis" level="DEBUG" />
<logger name="com.ibatis.common.jdbc.SimpleDataSource" level="DEBUG" />
<logger name="com.ibatis.common.jdbc.ScriptRunner" level="DEBUG" />
<logger name="com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate" level="DEBUG" />
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="java.sql.PreparedStatement" level="DEBUG" />


[size=large]logback.xml详细配置参考:
[url]http://logback.qos.ch/manual/index.html[/url]
[url]http://www.360doc.com/content/11/0915/11/1542811_148397974.shtml[/url]
[url]http://yuri-liuyu.iteye.com/blog/954038[/url][/size]
### MyBatis-Plus 中整合 SLF4J 实现 SQL 日志打印 为了在 MyBatis-Plus 中通过 SLF4J 打印 SQL 语句日志,可以按照以下方法配置。此过程涉及依赖引入、配置文件调整以及必要的工具类设置。 #### 1. 添加依赖项 首先,在项目的 `pom.xml` 文件中添加所需的依赖项以支持 SLF4J 和 MyBatis-Plus 的集成[^3]: ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.3.0</version> </dependency> <!-- SLF4J --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.36</version> </dependency> <!-- Logback as the logging implementation --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> </dependency> ``` 上述代码片段展示了如何引入 MyBatis-Spring Boot Starter、SLF4J API 及其具体实现 Logback。 --- #### 2. 配置 application.yml 或 application.properties 接下来,修改 Spring Boot 应用程序的配置文件来启用 SQL 日志记录功能。以下是基于 YAML 格式的配置示例: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver logging: level: com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor: debug org.springframework.transaction.interceptor.TransactionAspectSupport: warn your.package.name.mapper: debug ``` 在此配置中: - 设置数据源连接参数。 - 将特定包下的日志级别设为 `debug`,以便捕获 SQL 查询语句及其执行时间。 如果使用的是 `.properties` 文件,则对应的配置如下: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver logging.level.com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor=debug logging.level.org.springframework.transaction.interceptor.TransactionAspectSupport=warn logging.level.your.package.name.mapper=debug ``` --- #### 3. 启动类中的插件配置 确保在应用程序启动类中注册了 MyBatis-Plus 插件并启用了性能分析器或其他相关组件。例如: ```java import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyBatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); return interceptor; } } ``` 以上代码定义了一个拦截器用于分页查询等功能扩展,并可通过调试模式查看详细的 SQL 输出。 --- #### 4. 自定义日志格式(可选) 可以通过自定义日志模板进一步优化输出样式。编辑 `src/main/resources/logback-spring.xml` 文件,增加类似下面的内容: ```xml <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="STDOUT"/> </root> <!-- Enable detailed logs for specific packages --> <logger name="com.baomidou.mybatisplus" level="DEBUG"/> <logger name="your.package.name.mapper" level="DEBUG"/> </configuration> ``` 该 XML 片段设置了控制台输出的日志格式,并针对某些关键模块开启更详尽的信息展示。 --- #### 工具类辅助(如需额外处理) 对于复杂场景可能还需要一些辅助工具类的支持,比如结果封装类或加密逻辑等。这些可以根据实际需求自行开发。 --- ### 总结 完成上述步骤后即可成功利用 SLF4J 记录 MyBatis-Plus 的 SQL 运行情况,便于排查问题或者监控系统行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值