Exception 来自flask decorator的日志异常源
我正在使用python装饰程序处理flask应用程序中的异常 decorators.pyException 来自flask decorator的日志异常源,exception,flask,python-3.6,Exception,Flask,Python 3.6,我正在使用python装饰程序处理flask应用程序中的异常 decorators.py def exception(original_function=None, message='Some error occurred on our end.', app=None): def decorator(function): @functools.wraps(function) def wrapper_function(*args, **kwargs):
def exception(original_function=None, message='Some error occurred on our end.', app=None):
def decorator(function):
@functools.wraps(function)
def wrapper_function(*args, **kwargs):
try:
return function(*args, **kwargs)
except Exception as e:
handler(app, e)
return internal_error(message)
return wrapper_function
@bp.route('/initialize/<string:uuid>/<string:method>', methods=['POST'])
@exception(app=current_app)
def initialize(uuid=None, method=None):
if not uuid:
return bad_request('No UUID')
处理程序
函数捕获异常详细信息并记录或显示它们
def handler(app, e='Exception'):
exc_type, exc_obj, exc_tb = sys.exc_info()
exc_type, filename, line_no = exc_type, exc_tb.tb_frame.f_code.co_filename, exc_tb.tb_lineno
app.logger.error(f'\n+{"-" * 64}\n'
'| Exception details:\n'
f'| Message: {e}\n'
f'| Type:\t\t{exc_type}\n'
f'| File:\t\t{filename}\n'
f'| Line No:\t\t{line_no}\n'
f'+{"-" * 64}\n')
然后我在烧瓶路径中使用它,如下所示:
route.py
def exception(original_function=None, message='Some error occurred on our end.', app=None):
def decorator(function):
@functools.wraps(function)
def wrapper_function(*args, **kwargs):
try:
return function(*args, **kwargs)
except Exception as e:
handler(app, e)
return internal_error(message)
return wrapper_function
@bp.route('/initialize/<string:uuid>/<string:method>', methods=['POST'])
@exception(app=current_app)
def initialize(uuid=None, method=None):
if not uuid:
return bad_request('No UUID')