本文主要是介绍【小海实习日记】问题排查思路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
思路1:我先排查好我自己这部分,没有问题了以后,再去和同事沟通对接。
思路2:从全局思维出发,去进行问题的排查,进行整个链路的判断。在链路的关键点中埋点,加日志。(链路是指这个功能模块涉及到的所有节点、不同人负责的部分)另外,解决好了自己的部分以后,及时同步到群上,进行协调解决。
为什么要输出日志?
在项目的日常开发维护过程中,各种问题是不可避免的。如果没有日志,我们很难了解出现问题时发生了什么以及如何解决。因此,输出日志的目的是为后续的维护和迭代提供便利。一条好的日志可以在问题定位和排查过程中提供极大的帮助,让我们更加省时省力。
输出日志的要点
那么,什么是一条好的日志呢?从场景和需求入手,当我们接到反馈说某个模块或者功能出现问题时,可能是我们的代码逻辑出现问题,或者是我们代码中调用的某种能力(如 MySQL、Redis、第三方服务)出现问题。
如果是代码逻辑问题,我们最关注的是代码出现在哪个文件、哪个函数、哪一行,以及为什么会触发错误。如果是调用某个服务出现问题,则需要从请求参数、请求的服务地址、服务返回的错误信息来排查。
为了加速日志在项目中和日志系统中的检索效率,我们还需要为每一类日志添加一个“索引字段”。
- 固定且高辨识度和检索能力强的索引(不要包含变量,这样在检索时容易做分组查询,变量应该作为引发错误的参数进行记录)
- 在项目中出现的位置(哪个文件、哪一行)
- 错误栈(一个函数可能在很多地方被调用,需要将从哪里触发、在哪里出现问题的整条链路记录下来)
- 引发错误的参数(可帮助我们复现场景、修复问题)
- 错误抛出的内容(可帮助我们做具体的优化)
- 错误发生的时间
这篇关于【小海实习日记】问题排查思路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!