问题:
在使用 flask 开发中,python 标准 logging 模块可以正常使用,保存日志到文件中。将项目部署到服务器,使用 gunicorn 作为容器时,日志信息并没有保存到文件。
原因:
gunicorn 有自己的日志,使用 gunicorn 作为容器时,gunicorn 用的是自身的。
解决:
在 flask 中也使用 gunicorn 的日志,而不要使用自己定义的 logging,或者 flask 的 logging。
gunicorn 中定义了两种日志:
gunicorn.error 和 gunicorn.access
所以将 flask 的 logging 去掉,改为 gunicorn 的 logger:
logger = logging.getLogger("gunicorn.error")