def with_exception_logging(func):
"""Decorates a function to log unhandled exceptions"""
def _decorator(*args, **kwargs):
try:
return func(*args, **kwargs)
except Exception:
stacktrace = inspect.trace()[1:]
logger = logging.getLogger(__name__)
logger.exception("An unhandled exception occurred")
log_last_django_query(logger)
log_stacktrace(logging.getLogger('nav.topology.stacktrace'),
stacktrace)
raise
return wraps(func)(_decorator)
评论列表
文章目录