开发久了,总会遇到“这个问题生产环境上能重现,但是没有日志,业务很复杂,不知道哪一步出错了?” 这个时候,怎么办? 还能怎么办,发个版本,就是把所有地方加上日志,没有任何新功能,然后在让用户重现一遍,拿下日志来看,哦,原来是这个问题。
在没有全链路日志的情况下,当我们机器越来越膨大的时候,只能一个一个机器的翻。找了半天,看到日志,在看代码,一个一个排查,半天过去,终于找到了原因. 建设全链路日志的必要性体现在这里. 提升效率的必由之路。
有了全链路日志以后,应该要做到以下几个要求。
- 新增和修改操作必须打印日志—-> 有迹可循,有数据支撑
- 条件分支打印条件值—-> 决定了代码走那个分支,减少猜疑
要做到这个不容易,更多是靠自觉。
- 不要依赖debug,多依赖日志,业务变大,迭代迅速的时候有时很难在本地启动了。(Mock的单元测试除外)
- 日志是功能的一部分。提交代码前看日志是否完备 (出现问题时日志是否够用.)
- 减少无效日志的干扰
- 对于排查问题的无效日志