使用时,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