用logging替换print

平时在学习和工作中,为了调试和检查,经常会用到打印变量结果等信息,习惯用print。这是不好的习惯,尤其是在Web相关的项目中。很小的脚本文件中用print是比较方便的,在稍微大点的Web项目中应该用logging模块彻底替换print,养成习惯。


logging是Python标准库的日志模块,官方文档地址在此

可以方便地自定义日志输出格式,官方文档中已经写得很详细了。实际开发中可以灵活地按需定制,经过测试,我定制出比较方便调试的日志格式:

LOG_FORMAT = ('%(levelname)s: %(asctime)s: %(name)s: '
'%(pathname)s: %(lineno)d: %(message)s')

LOG_LEVEL = 'DEBUG' # 输出DEBUG和DEBUG以上级别的日志

输出格式示例:

DEBUG: 2018-01-05 16:53:40,597: TestLog: /Users/molock/work/superset/controllers.py: 433: datasource_type:table, id:102

基本的信息都有了,日志级别,时间,日志名,文件路径和行数,输出的信息。

这是logging模块最基本的配置和使用,实际上logging功能更加丰富。

更多参考资料: