spring boot中控制台打印sql日志

本文介绍了如何在Spring Boot项目中配置控制台打印SQL日志的方法。通过在application.properties或application.yml文件中设置logging.level属性,可以指定特定包路径下的DAO层以debug级别输出SQL语句,便于开发调试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在application.properties中添加

#spring boot中控制台打印sql日志
#com.example.demo.dao 是dao的位置
logging.level.com.example.demo.dao=debug

最终propertites为

spring.datasource.url=jdbc:mysql://localhost:3306/c?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

mybatis.typeAliasesPackage=com.example.demo.domain
mybatis.mapperLocations=classpath:mapper/*.xml

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

spring.server.MaxFileSize=50MB
spring.server.MaxRequestSize=50MB
server.port=8888

#spring boot中控制台打印sql日志
#com.example.demo.dao 是dao的位置
logging.level.com.example.demo.dao=debug

.yml中添加为

# 打印sql
logging:
  level:
     com.example.demo.dao : debug

<think>嗯,用户问的是如何在Spring Boot项目的控制台打印SQL日志。我需要先回想一下Spring Boot日志配置相关的内容。记得Spring Boot默认使用Logback作为日志框架,所以可能需要通过配置文件来调整日志级别。 首先,用户可能需要知道如何开启SQL语句的日志。这通常涉及到设置Hibernate的日志级别,或者对应的数据源配置。如果是使用Hibernate的话,应该设置org.hibernate.SQL为DEBUG级别,这样可以显示SQL语句,但可能不带参数。然后,如果需要看到具体的参数值,可能需要启用org.hibernate.type.descriptor.sql.BasicBinder的TRACE级别。 另外,如果是使用Spring Data JPA的话,可能还需要考虑spring.jpa.show-sql属性,不过这个属性可能只打印SQL而不带格式化的信息,而且参数也不会显示出来。所以更推荐使用日志配置的方式,这样信息更详细。 然后,用户可能需要配置application.properties或者application.yml文件。比如在application.properties中添加logging.level.org.hibernate.SQL=DEBUG和logging.level.org.hibernate.type=TRACE。或者根据不同的数据源实现,比如如果用的是MyBatis,可能需要配置不同的logger,比如logging.level.org.mybatis=DEBUG。 还要考虑不同的数据库驱动,比如HikariCP的连接池,可能也需要调整日志级别,不过主要关注点应该在SQL语句本身。 可能还需要提醒用户,生产环境不要开启过细的日志级别,以免影响性能。另外,格式化后的SQL是否换行显示,可能需要配置hibernate.format_sql属性,这样日志中的SQL会更易读。 总结一下步骤应该是:1. 修改配置文件设置相关日志级别;2. 可能调整Hibernate的格式化选项;3. 运行测试,执行数据库操作查看控制台输出。此外,区分不同的持久层框架,比如JPA、MyBatis,它们的配置方式可能不同,需要分别说明。 可能用户在使用过程中遇到了无法看到SQL日志的问题,所以需要详细的步骤和不同的情况处理。还要注意是否启用了事务,或者是否有其他配置覆盖了日志设置。可能需要检查依赖是否正确,比如是否有Logback的依赖,或者是否排除了默认的日志框架。 最后,给出示例配置,并说明每个配置项的作用,这样用户可以直接复制粘贴并调整自己的项目。同时提醒生产环境的注意事项,确保用户不会在不知情的情况下开启敏感信息日志。</think>在Spring Boot项目中,控制台打印SQL日志可通过以下步骤实现: --- ### 一、配置日志级别 #### 1. 修改`application.properties`或`application.yml` - **Hibernate/JPA场景**(默认输出无参数SQL): ```properties # 显示SQL语句 logging.level.org.hibernate.SQL=DEBUG # 显示SQL参数(需配合Hibernate) logging.level.org.hibernate.type.descriptor.sql.BASIC_BINDER=TRACE ``` - **MyBatis场景**: ```properties # 显示SQL及参数 logging.level.org.mybatis=DEBUG ``` #### 2. 格式化SQL(可选) ```properties # 格式化SQL语句 spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true ``` --- ### 二、不同场景的配置差异 #### 场景1:使用Spring Data JPA - 默认通过`spring.jpa.show-sql=true`可打印SQL,但**不显示参数** - **完整参数显示**需依赖Hibernate日志配置: ```properties logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type=TRACE ``` #### 场景2:使用MyBatis - 需直接配置MyBatis的Mapper接口包路径: ```properties logging.level.com.example.mapper=DEBUG ``` --- ### 三、控制台输出示例 ``` 2023-01-01 12:00:00 DEBUG SQL - select * from user where id=? 2023-01-01 12:00:00 TRACE BasicBinder - binding parameter [1] as [BIGINT] - 1001 ``` --- ### 四、注意事项 1. **生产环境慎用**:频繁打印SQL日志会影响性能 2. **敏感信息防护**:日志中可能包含数据库字段值,需做好日志权限控制 3. **依赖检查**:确保项目中存在日志实现(如Logback、Log4j2) --- ### 五、高级配置(Logback) 在`logback-spring.xml`中精细化配置: ```xml <logger name="org.hibernate.SQL" level="DEBUG"/> <logger name="org.hibernate.type.descriptor.sql" level="TRACE"/> ``` 通过上述配置,即可在开发调试阶段清晰查看SQL执行细节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值