我们一般在编程的时候使用print大法,但是当项目部署上线之后再使用print机会很不方便,今天我们看下如何在Flask中集成Python的logging模块。
该篇笔记摘自《Flask Web开发实战》一书,内容不错推荐购买。
书籍详情:http://greyli.com/flask-web-development/
在程序的实例化模块中进行一下操作。
1 | import os |
为了让日志记录器记录INFO等级的日志事件,我们先将app.logger的等级设置为INFO。然后我们设置一个logging.Formatter对象设置日志的输出格式。为了避免日积月累产生一个巨大的日志文件,我们使用RotatingFileHandler类创建一个轮转文件类型的日志处理器,实例化这个类传入日志文件的目标路径,最大文件尺寸和备份数量。当日志文件的大小超过实例化时传入的maxBytes参数设定的值时(单位为byte,我们设置的为10MB),它会循环覆盖之前的记录;将backupCount参数设置为10会依次创建10个日志文件,10个文件全部存满10MB后会开始覆盖之前的文件。
这里的日志文件夹需要我们自己创建(记得加入
.gitignore)
可以在代码中直接使用
1 | current_app.logger.error(text) |
我们使用setFormatter方法设置处理器输出的日志格式,使用setLevel方法将文件日志处理器的接收日志等级设置为INFO。
最后,我们对app.logger调用addHandler方法将处理器注册到logger对象中,添加if判断确保在调试模式下不会添加处理器,只有在线上才会。