碎碎念-怎么打印系统中日志(二十)

796 阅读3分钟

前言

做一件事情的时候,聪明的人考虑未来三到五年,厉害的人考虑五到十年,真正厉害的人考虑未来十到二十年。

现在在敲的代码,在十年后可能不值一文,但是思考这件事情永远都不会过时。

今天继续来讲一讲如何编写高质量的代码

日志

现在我是真的不知道那本书里面有讲解怎么打印系统中的日志。既不会显得多余,又不是失去重要的信息。

万一生产环境出现了问题,我们肯定是第一时间看生产环境的日志来处理问题。如果这个时候,生产环境的日志没有有效的打印,那么回会导致其他严重的后果。重则迟迟无法解决问题,轻则也会导致你焦头烂额。

那么应该如何打印合适的日志呢?目前以我浅薄的经验来看,可以从下面几个角度来尝试下。

重要阶段打印日志

举一个电商系统下单的例子,下单流程包含下单完成,付款完成,物流发送,物流到达等流程。那么起码在每一个流程开始运行和结束运行之后都必须要打印特定的日志来表示这个过程。

调用其他接口日志

一般来说,我们现在都是分布式的服务,都会去调用远程的接口来获取数据。那么,这份数据其实是需要打印出日志内容的。不然,当这段代码出现问题的时候,会无法从日志里面看到是否是远程调用出现了问题。

最外层接口调用日志

最外面的接口调用的日志得打印,从最外面的接口调用的日志,我们可以清晰的一层一层地去判断所有的层次获取的数据,最后能够从这些数据中推导出来到底是哪一行代码出现了问题。这里,我个人感觉如果层次比较多,在这个中间也要打相应的日志信息,来帮助自己减少判断的逻辑。

错误日志必须打印

绝对不能把错误日志给吃掉。绝对要把错误给不断地抛出来,不然GG。

容易出现错误的地方打印日志

最近经常出现一份数据,总是在从缓存中获取,没有从数据库中获取。但是,这个时候如果缓存没有更新,那么就会导致缓存中是过期的数据,其实容易到处出现错误。要好好考虑怎么才能从日志里面看出来,到底操作是从缓存中获取的数据,还是从是数据库中获取的数据。

不要经常debug

一般在开发阶段可以通过不断地debug来处理系统中出现的莫名其妙的问题。但是,要尽量减少这个过程。不能通过日志看出来的问题,都会在生产环境中对你造成及其严重的后果。

关于写作

以后这里每天都会写一篇文章,题材不限,内容不限,字数不限。尽量把自己每天的思考都放入其中。

如果这篇文章给你带来了一些帮助,可以动动手指点个赞,顺便关注一波就更好了。

如果上面都没有,那么写下读完之后最想说的话?有效的反馈和你的鼓励是对我最大的帮助。

另外打算把博客给重新捡起来了。欢迎大家来访问吃西瓜

我是shane。今天是2019年8月29日。百天写作计划的第三十六天,36/100。