在flask蓝图里,我们可以使用@app.errorhandler(500)全局监控蓝图的错误,但是在restfull api中会失效,下面介绍如何早restfull中全局监控错误
1、重写类Api的error_router方法,让Api类自定义错误方式
class Api(_Api):
def error_router(self, original_handler, e):
""" Override original error_router to only handle HTTPExceptions. """
if self._has_fr_route() and isinstance(e, HTTPException):
try:
return self.handle_error(e)
except Exception:
pass # Fall through to original handler
return original_handler(e)
2、这个时候再flask启动文件中使用app.errorhandler就可以监控到;
# app = create_app()
@app.errorhandler(500)
def server_error(e):
return jsonify({"code", "message": "自定义错误返回"})
这样可以统一监控到restfull全局报错信息,自定义接口报错返回的信息。自定义错误日志等