全局异常的配置
-
dev.py文件中配置以下内容
REST_FRAMEWORK = { 'EXCEPTION_HANDLER': 'utils.exception.common_exception_handler' # 再出异常,会执行这个函数 }
-
在utils文件夹下新建excepiton.py
## 全局异常捕获 from rest_framework.views import exception_handler # 默认没有配置,出了异常会走它 from rest_framework.response import Response from utils.logging import logger def common_exception_handler(exc, context): res = exception_handler(exc, context) if res: res = Response(data={'code': 998, 'msg': res.data.get('detail', '服务器异常,请联系系统管理员')}) else: res = Response(data={'code': 999, 'msg': str(exc)}) request = context.get('request') view = context.get('view') logger.error('错误原因:%s,错误视图类:%s,请求地址:%s,请求方式:%s' % (str(exc), str(view), request.path, request.method)) return res