如何打日志才能方便排查问题?

作者:微信小助手

发布时间:2021-04-26T10:30:06

点击蓝色“架构文摘”关注我哟

加个“星标”,每天上午 09:25,干货推送!



作者:琴水玉

原文:https://cnblogs.com/lovesqcc/p/4319594.html

在程序中打错误日志的主要目标是为更好地排查问题和解决问题提供重要线索和指导。但是在实际中打的错误日志内容和格式变化多样,错误提示上可能残缺不全、没有相关背景、不明其义,使得排查解决问题成为非常不方便或者耗时的操作。而实际上,如果编程的时候稍加用心,就会减少排查问题的很多无用功。
在阐述如何编写有效的错误日志之前,了解错误是怎么产生的,非常重要。
错误是如何炼成的
对于当前系统来说, 错误的产生由三个地方引入:
1.上层系统引入的非法参数。对于非法参数引入的错误, 可以通过参数校验和前置条件校验来截获错误;
2.与下层系统交互产生的错误。与下层交互产生的错误, 有两种:
a.下层系统处理成功了,但是通信出错了, 这样会导致子系统之间的数据不一致;
对于这种情况, 可以采用超时补偿机制,预先将任务记录下来,通过定时任务在后续将数据订正过来。
更好的设计方案 ?
b.通信成功了,但是下层处理出错了。
对于这种情况, 需要与下层开发人员沟通, 协调子系统之间的交互;
需要根据下层返回的错误码和错误描述做适当的处理或给予合理的提示信息。
无论哪一种情况, 都要假设下层系统可靠性一般, 做好出错的设计考虑。
3.本层系统处理出错。
本层系统产生错误的原因:
原因一:疏忽导致。
疏忽是指程序员能力完全可避免此类错误但实际上没做到。比如将 && 敲成了 & , == 敲成了 = ;边界错误, 复合逻辑判断错误等。疏忽要么是程序员注意力不够集中, 比如处于疲倦状态、加班通宵、边开会边写程序;要么是