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 进行更精细的控制。


📝 快速记忆口诀

  1. 找包名org.springframework.xxx
  2. 加级别DEBUGTRACE
  3. 看效果:观察控制台输出
  4. 调精度:根据需要调整级别

🔎 如何找到正确的包名?

  1. 查看异常堆栈:从异常信息中获取类名
  2. 使用IDE搜索:在IDE中搜索相关关键词
  3. 官方文档:查阅框架文档中的日志配置章节
  4. 通用规律
    • Spring: org.springframework.xxx
    • Hibernate: org.hibernate.xxx
    • 数据库: com.zaxxer.hikari, org.apache.tomcat.jdbc
    • 项目代码: com.yourcompany.xxx

掌握了这个规律,您就可以轻松配置任何需要的日志级别了!

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

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

相关文章

DJANGO后端服务启动报错及解决

1.报错信息[2025-09-05 17:08:54 0800] [23438] [INFO] Worker exiting (pid: 23438) [2025-09-05 17:08:54 0800] [23440] [ERROR] Exception in worker process Traceback (most recent call last):File "/www/SOP/lib64/python3.11/site-packages/gunicorn/arbiter.py&…

Qt 中的 Q_OBJECT 宏详解 —— 从源码到底层机制的全面剖析

Qt 中的 Q_OBJECT 宏详解 —— 从源码到底层机制的全面剖析 文章目录Qt 中的 Q_OBJECT 宏详解 —— 从源码到底层机制的全面剖析摘要一、Q_OBJECT 宏是什么?二、Q_OBJECT 宏背后的源码三、moc 工具的作用四、信号与槽调用流程五、没有 Q_OBJECT 会怎样?六…

GD32自学笔记:5.定时器中断

定时器中断功能主要是两点:1.怎么配置的定时器中断时间间隔;2.中断里长什么样一、定时器中断配置函数直接在bsp_basic_timer.c里找到下面函数:void basic_timer_config(uint16_t pre,uint16_t per) {/* T 1/f, time T * pre,pertime (pre …

[Godot入门大全]目录

1 免责声明 资源分享免责声明: 本平台/本人所分享的各类资源(包括但不限于文字、图片、音频、视频、文档等),均来源于公开网络环境中的可分享内容或已获授权的传播素材。 本平台/本人仅出于信息交流、资源共享之目的进行传播&…

使用 StringRedisTemplate 实现 ZSet 滚动查询(处理相同分数场景)

1. 为什么需要改进当 ZSet 中存在相同分数 (score) 的元素时,单纯使用分数作为偏移会导致数据漏查或重复。例如:多条记录具有相同时间戳(作为分数)分页查询时可能跳过相同分数的元素或重复查询相同分数的元素改进方案:…

【Android】安装2025版AndroidStudio开发工具开发老安卓旧版App

为了开发老旧的安卓App,这里记录一下2025版AndroidStudio的安装过程,如果卸载以后,可以按照此文章的步骤顺利重新安装继续使用。 文章目录安装包Android SDK新建项目新建页面构建项目Gradle下载失败构建失败构建完成编译失败安装失败关于APP在…

Python跳过可迭代对象前部元素完全指南:从基础到高并发系统实战

引言:跳过前部元素的核心价值在数据处理和系统开发中,跳过可迭代对象的前部元素是常见且关键的操作。根据2024年数据处理报告:92%的数据清洗需要跳过文件头部85%的日志分析需要忽略初始记录78%的网络协议处理需跳过头部信息65%的机器学习训练…

ConcurrentHashMap扩容机制

ConcurrentHashMap的扩容为了提高效率,是多线程并发的每个线程控制一部分范围节点的扩容(根据cpu与数组长度确定控制多大范围)有两个核心参数sizeCtl:标记扩容状态 负数时代表正在扩容,存储量参与扩容的线程数,正数代表出发扩容的…

Spring Cloud Gateway 进行集群化部署

如果将 Gateway 单独部署为一个服务而不做任何高可用处理,它确实会成为一个单点故障(SPOF, Single Point of Failure)。如果这个唯一的 Gateway 实例因为服务器宕机、应用崩溃、部署更新或其他任何原因而不可用,那么整个系统的所有…

计算机网络:以太网中的数据传输

以太网中,数据的传输依赖于一系列标准化的技术规范,核心包括帧结构封装、介质访问控制机制和物理层编码技术,具体如下: 1. 以“帧(Frame)”为基本传输单元 以太网在数据链路层将网络层的数据包(…

元器件--USB TypC接口

USB TypC接口下图这些都是USB接口A口与B口的区别USB A口和B口最初由USB-IF在1996年引入。根据当时的USB协议,A口主要用于主设备(如电脑),而B口则用于从设备(如打印机和摄像头)。随着USB-C接口的日益普及&am…

多线程之HardCodedTarget(type=OssFileClient, name=file, url=http://file)异常

多线程之HardCodedTarget(typeOssFileClient, namefile, urlhttp://file)异常 摘要: 文档描述了多线程环境下调用Feign客户端OssFileClient时出现的HardCodedTarget异常。异常发生在异步保存文件到ES时,Feign调用未返回预期结果而直接打印了客户端对象。…

计算机视觉(十二):人工智能、机器学习与深度学习

人工智能 (AI):宏大的目标 人工智能是最广泛、最宏大的概念,它的目标是让机器能够模仿人类的智能行为,例如: 推理:像下棋程序一样,通过逻辑来做决策。规划:为实现一个目标而制定步骤&#xff0c…

容器元素的滚动条回到顶部

关闭再打开后,容器元素的滚动条回到顶部解决方法:1、通过打开开发者工具(F12),找到滚动条所属元素为 el-textarea__inner,其父类 class"el-textarea content"2、代码,通过元素的方法 …

分布式专题——2 深入理解Redis线程模型

1 Redis 简介 1.1 Redis 是什么? Redis 全称 Remote Dictionary Server(远程字典服务),是一个开源的高性能 Key-Value 数据库; 官网:Redis - The Real-time Data Platform; 引用官网上的⼀个…

simd学习

如何查看cpu是否支持simd?# 检查特定指令集 grep -o avx2 /proc/cpuinfo | head -1 # 检查AVX2 grep -o sse4 /proc/cpuinfo | head -1 # 检查SSE4 grep -o avx512 /proc/cpuinfo | head -1 # 检查AVX512gcc编译选项,增加支持simd-mavx2 -D__AVX2__SS…

LabVIEW汽车发动机振动测试

以某型号四缸汽油发动机为测试对象,借助 LabVIEW 平台与高精度数据采集硬件,开展发动机全工况振动测试。通过实时采集缸体、曲轴箱关键部位振动信号,分析振动特征与故障关联,验证发动机运行稳定性,为后期优化设计提供数…

android 四大组件—Service

启动服务startService//启动服务,通过类名 Intent intent new Intent(this, WiFiAutoLinkService.class); startService(intent); //通过字符串启动 Intent intent new Intent(); intent.setAction("com.launcher.app"); intent.setPackage("com.l…

https + 域名 + 客户端证书访问模式

项目使用金融云部署,对外暴露IP访问,因安全合规要求必须使用域名访问,但公司又不提供域名。故,改为 https 域名 客户端证书双向认证 访问模式,大大提升安全性。 1. 密钥文件类型 .key、.csr、.cer(或 .cr…

ICPC 2023 Nanjing R L 题 Elevator

[ProblemDiscription]\color{blue}{\texttt{[Problem Discription]}}[Problem Discription] 来源:洛谷。侵权则删。 [Analysis]\color{blue}{\texttt{[Analysis]}}[Analysis] 贪心。优先运送楼层高的货物,在能装下的情况下尽量多装。 因为运送货物的代价…