python的logging模块实现json格式的日志输出
想要让开发过程或者是上线后的bug无处可藏,最好的方式便是在程序运行过程中,不断收集重要的日志,以供分析使用。Python中内置的log收集模块是logging,该模块使用起来比较方便,但是美中不足的地方就是日志的格式转成json比较麻烦。于是我结合logging和另一个模块python-json-logger(pip install python-json-logger), 实现json格式的日志输出。
以下代码可以做成模块,直接导入使用
源码
1 | #!/user/bin/env python |
测试结果
测试的结果,可以在./TimeoutCheck.log文件中看到输出的日志
1 | $ cat TimeoutCheck.log |
版本二
1 | import json |
版本三
此版本为优化版本,继承pythonjsonlogger.jsonlogger库中的JsonFormatter类,重写format方法
1 | #! /usr/bin/env python |
可以看到日志是json格式,这样你就可以很方便的使用grafna和kafka->logstash->es的方式进行日志收集展示了.如果需要将日志直接打到kafka中,需要使用kafka-python库,同时定义handlers进行处理.