gpt4 book ai didi

python - 使用 Flask 的 "after_request"处理程序获取错误回溯

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:45 24 4
gpt4 key购买 nike

after_request 的文档说“从 Flask 0.7 开始,这个函数可能不会在请求结束时执行,以防发生未处理的异常。”有没有办法改变这一点,以便即使是未处理的异常也会调用 after_request 函数,例如记录回溯?

最佳答案

使用teardown_request相反。

Register a function to be run at the end of each request, regardless of whether there was an exception or not.

These functions are not allowed to modify the request, and their return values are ignored. If an exception occurred while processing the request, it gets passed to each teardown_request function.

from flask import Flask

app = Flask(__name__)
# unhandled teardown won't happen while in debug mode
# app.debug = True
# set this if you need the full traceback, not just the exception
# app.config['PROPAGATE_EXCEPTIONS'] = True

@app.route('/')
def index():
print(test)

@app.teardown_request
def log_unhandled(e):
if e is not None:
print(repr(e))
# app.logger.exception(e) # only works with PROPAGATE_EXCEPTIONS

app.run('localhost')

请注意,在调用 teardown_request 时,回溯已经超出范围;只有异常(exception)可用。您可以通过设置 PROPAGATE_EXCEPTIONS = True 来更改它,尽管这可能会产生性能问题。鉴于 Flask 已经记录了回溯,配置日志记录可能比尝试自己记录更容易。

关于python - 使用 Flask 的 "after_request"处理程序获取错误回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com