我们一般在编程的时候使用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
判断确保在调试模式下不会添加处理器,只有在线上才会。