SpringBoot 调试技巧:断点、日志、 Arthas 在线诊断

张开发
2026/4/10 7:59:47 15 分钟阅读

分享文章

SpringBoot 调试技巧:断点、日志、 Arthas 在线诊断
本篇文章来介绍一下SpringBoot 调试流程。一、本地断点调试本地开发时遇到逻辑不通、变量异常断点调试是最快的方式。✅ 核心操作1. 在 IDEA 代码行号左侧点击出现红色小圆点断点就生效了2. 以Debug 模式启动项目不是 Run图标是小虫子3. 请求接口/触发方法代码会自动停在断点处逐行排查即可。 调试快捷键•F7进入方法内部比如调用 service 方法点它就能进去看细节•F8下一步不进入方法适合快速跳过无关代码•F9跳到下一个断点如果有多个断点不用逐行点•AltF8实时计算表达式比如查 userId 的值、判断某个条件是否成立直接输入就能看。 实用小技巧「条件断点」右键红色断点 → 输入条件比如userId 100只有满足条件时才会暂停避免无关请求打断调试。「异常断点」直接捕获程序抛出的异常自动定位报错行不用手动找异常位置。二、日志调试线上项目不能用断点总不能停掉服务调试日志就是排查问题的“眼睛”关键位置打印日志能快速追溯问题。✅ 推荐写法不用手动 new 日志对象加个Slf4j注解直接用代码更干净Slf4j Service public class UserService { public String getUsername(Long userId) { // 关键参数打印方便追溯请求 log.info(查询用户ID{}, userId); try { // 业务逻辑... } catch (Exception e) { // 异常必须打印堆栈重中之重 log.error(查询用户异常, e); } return username; } } 日志级别•trace细节追踪太细一般不用•debug调试信息本地开发用线上关闭•info正常流程线上常用打印关键请求、参数•warn警告比如参数不合法不影响运行但需关注•error错误必须打比如接口报错、数据库异常。 线上日志配置application.yml线上建议只开 info 及以上级别避免日志过多占磁盘logging: level: com.example.demo: info # 你的业务包按需修改 org.springframework: warn # 框架日志警告级别即可三、Arthas 在线诊断线上项目出问题不能重启、不能改代码、不能停服务用 Arthas 直接“穿透”运行中的项目排查问题。它是阿里开源的 Java 在线诊断工具不用复杂配置下载就能用堪称线上调试“救星”。✅ 快速安装启动# 1. 下载 Arthas直接执行自动下载 curl -O https://arthas.aliyun.com/arthas-boot.jar # 2. 运行启动后选择你要调试的 SpringBoot 进程 java -jar arthas-boot.jar 最常用 4 个命令不用记复杂命令这 4 个足以解决 90% 线上问题1.查看方法入参、出参、异常最常用watch com.example.demo.service.UserService getUsername {params,returnObj,throwExp} -n 5解读监控 UserService 的 getUsername 方法打印参数、返回值、异常只监控 5 次请求。2.查看方法执行耗时定位慢接口trace com.example.demo.service.UserService getUsername解读追踪方法执行链路显示每一步的耗时快速找到卡壳的地方。3.实时查看调用堆栈排查线程阻塞stack com.example.demo.service.UserService getUsername4.反编译线上代码验证是否部署正确jad com.example.demo.service.UserService解读直接查看线上运行的代码避免“本地代码和线上不一致”的坑。四、总结3 种调试方式怎么选不用纠结按场景选效率最高• 「本地开发」用断点调试最快、最直观• 「测试/线上排查」用日志调试最稳定、不影响服务• 「线上突发问题、无法本地复现」用Arthas最强、不用重启。以上就是 SpringBoot 最实用的 3 套调试技巧收藏起来下次遇到 Bug 直接查不用再到处找教程最后关注我后续持续分享 SpringBoot 干货帮你少走弯路、高效搬砖

更多文章