Spring Boot 日志配置通用规律。想看特定日志,怎么打开日志开关
文章目录
- 一、一句话总结
- 二、AI问答版
- 提问词
- AI的响应
- 📊 Spring Boot 日志配置通用规律
- 1. 基本语法结构
- 2. 日志级别(从详细到简洁)
- 🎯 常用日志配置分类
- 1. Spring Cloud Gateway 相关
- 2. Web 和 HTTP 相关
- 3. 数据库和SQL相关(您问的重点)
- 4. Spring 核心框架
- 5. Eureka 服务发现
- 🔍 按场景推荐的日志配置
- 场景1:网关路由调试
- 场景2:SQL和数据库调试
- 场景3:完整的微服务调试
- 场景4:性能监控
- 🛠️ 高级配置技巧
- 1. 按环境配置不同的日志级别
- 2. 输出到文件和控制台
- 3. 使用Logback高级配置
- 📝 快速记忆口诀
- 🔎 如何找到正确的包名?
一、一句话总结
一句话描述就是找到要观察的类(从异常堆栈信息中获取类名),写上全类名和等级。yml内打开日志的配置形如:
logging:level:
# org.springframework.cloud.gateway: TRACE
# org.springframework.http.server.reactive: DEBUG
# org.springframework.cloud.netflix.eureka: DEBUG
# com.netflix.eureka: DEBUG
# com.netflix.discovery: DEBUG
# com.xxx.mapper: DEBUG
二、AI问答版
提问词
总结一下此类日志如何打开,有时我想查看SQL打印日志,但不知道怎么开,但是这类应该有规律:logging:level:com.netflix.discovery: DEBUG
AI的响应
您说得对!Spring Boot的日志配置确实有规律可循。我来为您总结一下各类日志的开启方法。
📊 Spring Boot 日志配置通用规律
1. 基本语法结构
logging:level:# 包名或类全限定名: 日志级别com.example.service: DEBUGorg.springframework.web: INFO
2. 日志级别(从详细到简洁)
TRACE
>DEBUG
>INFO
>WARN
>ERROR
>OFF
🎯 常用日志配置分类
1. Spring Cloud Gateway 相关
logging:level:org.springframework.cloud.gateway: TRACE # 网关核心日志org.springframework.cloud.gateway.handler: DEBUGorg.springframework.cloud.gateway.route: DEBUGorg.springframework.cloud.gateway.filter: DEBUGreactor.netty: DEBUG # 网络层日志
2. Web 和 HTTP 相关
logging:level:org.springframework.web: DEBUG # Spring Web MVCorg.springframework.web.reactive: DEBUG # WebFlux (Gateway用)org.springframework.http: DEBUG # HTTP请求响应org.springframework.http.server.reactive: DEBUG
3. 数据库和SQL相关(您问的重点)
logging:level:# Hibernate SQL日志org.hibernate.SQL: DEBUG # 显示执行的SQL语句org.hibernate.type.descriptor.sql: TRACE # 显示SQL参数值org.hibernate.stat: DEBUG # Hibernate统计信息# JPA日志org.springframework.data.jpa: DEBUGorg.springframework.orm.jpa: DEBUG# MyBatis日志com.example.mapper: DEBUG # MyBatis Mapper接口org.mybatis: DEBUG# 数据库连接池com.zaxxer.hikari: DEBUG # HikariCP连接池org.apache.tomcat.jdbc.pool: DEBUG # Tomcat连接池
4. Spring 核心框架
logging:level:org.springframework.context: DEBUG # Spring上下文org.springframework.beans: DEBUG # Bean管理org.springframework.transaction: DEBUG # 事务管理
5. Eureka 服务发现
logging:level:org.springframework.cloud.netflix.eureka: DEBUGcom.netflix.eureka: DEBUGcom.netflix.discovery: DEBUG
🔍 按场景推荐的日志配置
场景1:网关路由调试
logging:level:org.springframework.cloud.gateway: TRACEorg.springframework.http.server.reactive: DEBUGreactor.netty: DEBUGorg.springframework.cloud.netflix.eureka: DEBUG
场景2:SQL和数据库调试
logging:level:org.hibernate.SQL: DEBUGorg.hibernate.type.descriptor.sql: TRACEcom.zaxxer.hikari: DEBUGorg.springframework.transaction: DEBUG
场景3:完整的微服务调试
logging:level:# 网关org.springframework.cloud.gateway: DEBUG# 数据库org.hibernate.SQL: DEBUGorg.hibernate.type: TRACE# 服务发现org.springframework.cloud.netflix.eureka: DEBUG# Web请求org.springframework.web: DEBUGorg.springframework.web.reactive: DEBUG
场景4:性能监控
logging:level:org.hibernate.stat: DEBUG # Hibernate性能统计com.zaxxer.hikari: DEBUG # 连接池监控org.springframework.transaction: DEBUG # 事务监控
🛠️ 高级配置技巧
1. 按环境配置不同的日志级别
# application-dev.yml (开发环境)
logging:level:org.hibernate.SQL: DEBUGorg.springframework.cloud.gateway: TRACE# application-prod.yml (生产环境)
logging:level:org.hibernate.SQL: WARNorg.springframework.cloud.gateway: INFO
2. 输出到文件和控制台
logging:file:name: logs/gateway.log # 输出到文件level:org.springframework.cloud.gateway: DEBUGpattern:console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"
3. 使用Logback高级配置
创建 logback-spring.xml
进行更精细的控制。
📝 快速记忆口诀
- 找包名:
org.springframework.xxx
- 加级别:
DEBUG
或TRACE
- 看效果:观察控制台输出
- 调精度:根据需要调整级别
🔎 如何找到正确的包名?
- 查看异常堆栈:从异常信息中获取类名
- 使用IDE搜索:在IDE中搜索相关关键词
- 官方文档:查阅框架文档中的日志配置章节
- 通用规律:
- Spring:
org.springframework.xxx
- Hibernate:
org.hibernate.xxx
- 数据库:
com.zaxxer.hikari
,org.apache.tomcat.jdbc
- 项目代码:
com.yourcompany.xxx
- Spring:
掌握了这个规律,您就可以轻松配置任何需要的日志级别了!