- 哪个界面,调的什么接口?------- 确定这个界面调这个接口是否正确
- 入参、出参是啥?------ 确定入参是否符合要求,看出参是否符合预期
- 出参是什么,报的什么错?------ 例:系统内部错误 (1)请求这个接口看日志(2)在自己本地复现这个错误
- 前端打了一个请求,如何精确找到这个请求的日志?
- 在服务器中输入 tail -f 日志文件名,回车,在某一时段发现没有日志输出时,立马让前端发一个请求,看到服务器端出现了日志滚动,立马按 CTRL + C ,去详细的观看该日志信息,排查问题 【前提是,该方法中打了日志】
- 在ELK中查看 【一个项目部署在多个服务器中的情况,使用这种方式】
- 分布式链路追踪:
- 为了更方便的定位日志信息,如果有那么一个logId,直接使用grep直接去抓取,这样就可以很快,很有效的去定位
- 本地生成这个logId使用 MDC,MDC底层使用的是ThreadLocal。具体MDC怎么生成的那就得看MDC和log4j框架之间的关系了。
- 不同项目之间,需要rpc协议支持的项目,两者之间怎么使用同一个logId呢?如:crm_client 和 crm
- crm_client生成的logId放到rpc协议的Header中,crm项目通过rpc协议拿到crm_client项目中的Header中的logId,这样出现问题时就可以进行分布式链路追踪
- 是哪种协议,就把logId存储在哪种协议中
- 能否复现?