【问题标题】:How can I save request parameters along with exception Flask?如何将请求参数与异常 Flask 一起保存?
【发布时间】:2015-08-28 18:11:29
【问题描述】:
当 Flask 应用程序抛出异常时,我们通常有一个错误处理程序来捕获它:
@app.errorhandler(500)
def serverError(e):
# log to file or something
app.logger.error(e)
return render_template('500.html'), 500
我们怎样才能记录一些额外的数据,比如请求参数?很多时候,除了异常消息本身之外,了解导致异常的输入是什么很有用。
【问题讨论】:
标签:
python
error-handling
flask
【解决方案1】:
只需从request 记录您想要的任何数据,它仍然可以在错误处理程序中使用。这是一个简单的处理程序,用于记录请求头和随请求发送的任何数据。注意异常已经被Flask记录了,你不需要单独记录。
# make sure to add your own handler when not in debug mode
if not app.debug:
app.logger.addHandler(logging.StreamHandler())
@app.errorhandler(500)
def teardown_request(e):
app.logger.error(request.headers)
if request.args:
app.logger.error(request.args)
if request.form:
app.logger.error(request.form)
elif request.get_json():
app.logger.error(request.get_json())
return render_template('500.html'), 500