关于日志方面的一些感悟。
随着学习的逐渐深入,越来越感觉通过日志排查线上运行脚本的异常情况真的很重要,所以我认为程序的健壮很需要运行日志的支撑!
-
日志应该怎样添加呢?
- 首先应该建立自己的日志类
- 其次找到程序中的关键点,进行日志输出
- 第三日志输出尽量在程序底层,尽量不要放在业务层进行输出
下面分别说一下:
-
建立自己的日志类:
比如python中提供的logging模块,我们可以根据模块中提供的功能进行二次封装,从而达到自定义输出的效果,例如:控制日志的输出级别、控制日志的记录字段属性、定义日志文件大小、定义日志文件存放路径、定义日志删除机制
参照:日志类
-
程序中添加日志的关键点:
在状态产生变化的地方添加日志
关键阶段状态记录,对于程序运行情况更加了解系统入口与出口
例如:运行的环境不同,此时输出一个日志会节省很多排查问题的时间请求异常
这种日志的必然要添加的,在处理异常请求的时候,一定要把异常信息存起来,日后在排查问题的时候这是主要依据非预期执行
字面可以理解,我们不想看到的情况发生了,此时我们要记下来,结合前面的日志分析出现原因很少出现的else情况
else 可能吞掉你的请求,或是赋予难以理解的最终结果-
程序运行状态
- 程序运行时间
- 大批量数据的执行进度
- 关键变量及正在做哪些重要的事情
执行关键的逻辑,做IO操作等等
-
避免在业务层添加日志
业务层处理的全部为业务逻辑相关事情,相对来说比较零散,分散度比较高,例如:最简单的模型【方法实现+业务】,一般在方法封装的比较完整情况下,业务层中,也只是拼装方法,从而达到实现业务逻辑的效果;既然是这样,那我们还不如就在方法层中添加日志了,能达到在业务层中添加日志同样的效果,最主要的是还能一劳永逸;
一点不成熟的小想法,后期在持续增加
@雨 --2016-10-27 16:40:04