线上问题复盘时,Python 日志应该先看什么
很多排障之所以耗时,不是因为问题本身复杂,而是因为日志虽然很多,却没有按顺序看。线上问题复盘应该先收敛范围,再逐步深入,而不是一开始就满屏搜索关键字。
一、先确认问题属于哪条链路
- 接口返回慢,先看访问日志与耗时字段。
- 任务失败,先看任务执行记录和错误上下文。
- 页面报错,先确认请求有没有到达应用层。
先定位问题归属,再选日志入口,效率会高很多。
二、日志至少要带上下文标识
如果没有请求 ID、任务 ID、用户 ID、关键参数摘要,那么多条日志之间很难串起来。开发阶段就把这些字段规划进去,复盘时才能快速还原路径。
三、异常日志不要只打印一句失败
logger.exception(
"sync user profile failed",
extra={
"user_id": user_id,
"provider": provider,
"request_id": request_id,
},
)
异常日志既要有堆栈,也要有上下文。只打印“同步失败”这种模糊信息,后面通常还得重跑和猜测。
四、复盘后要补回归手段
真正有价值的复盘,不是写一段事故描述,而是补一条自动化校验、一段监控规则或一个测试用例,让同类问题下次不再重复发生。