gunicorn启动flask输出调试信息
在正式环境中gunicorn启动flask程序后,一般不需要输出调试信息,如果需要输出调试信息,需要在gunicorn的启动配置文件中进行设置。
#config.py
# config.py
import os
import gevent.monkey
gevent.monkey.patch_all()
import multiprocessing
#debug = True
bind = '0.0.0.0:7007'
pidfile = 'log/gunicorn.pid'
accesslog = 'log/access.log'
errorlog = 'log/error.log'
# capture_output = True
# debug=True #测试环境需要输出调试信息
# loglevel = 'debug' #测试环境需要输出调试信息
loglevel='warning' #正式环境
daemon = True #后台启动
reload = True
#workers = multiprocessing.cpu_count()
workers = 1
worker_class = 'gevent'
x_forwarded_for_header = 'X-FORWARDED-FOR'
将输出信息写到gunicorn的error文件中。
#test.py
from flask import Flask, request, jsonify
import logging
logging.getLogger("urllib3").propagate = False
logger = logging.getLogger("gunicorn.error")
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
@app.route('/test', methods=['GET', 'POST'])
def test():
logger.debug('hello world!')
if __name__ == '__main__':
app.run(host='0.0.0.0', port='8000', debug=True)
注意,通过上面的配置,修改程序test.py文件,不用重启程序,因为配置文件中reload=True
。但是修改配置文件config.py,需要用gunicorn重启。