您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在由Gunicorn托管时,为什么Flask应用程序不创建任何日志?

在由Gunicorn托管时,为什么Flask应用程序不创建任何日志?

使用时,python3 server.py你正在运行server3.py脚本。

使用时,gunicorn server:flaskApp ...你正在运行gunicorn启动脚本,然后将其导入模块server并flaskApp在该模块中查找变量。

由于server.py正在导入,因此__name__var将包含"server",而不包含,"__main__"因此你的日志处理程序设置代码未在运行。

你可以简单地将日志处理程序设置代码移到该if __name__ == "__main__":节之外。但是,请确保你留在那儿,flaskApp.run()因为你不希望在进口金枪鱼时就那样进行server

这种方法我有用:导入Python日志记录模块并向其添加gunicorn的错误处理程序。然后,您的记录器将登录到gunicorn错误日志文件

import logging

app = Flask(__name__)

gunicorn_error_logger = logging.getLogger('gunicorn.error')
app.logger.handlers.extend(gunicorn_error_logger.handlers)
app.logger.setLevel(logging.DEBUG)
app.logger.debug('this will show in the log')

我的Gunicorn启动脚本配置为将日志条目输出文件,如下所示:

gunicorn main:app \
    --workers 4 \
    --bind 0.0.0.0:9000 \
    --log-file /app/logs/gunicorn.log \
    --log-level DEBUG \
    --reload
Python 2022/1/1 18:24:04 有522人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶