定义全局异常,并且使用日志

from rest_framework.views import exception_handler
from app01.utils.response import APIResponse
from app01.utils.logg import get_logger
def first_exception_handler(exc, context):
response = exception_handler(exc, context)
if not response:
response = APIResponse(code=999,msg='服务器内部错误')
request = context.get('request')
user_obj = request.user
username = user_obj.username
ip = request.META.get('REMOTE_ADDR ')
logger = get_logger()
logger.info('用户的ip是:%s,用户名字是%s,用户出现的错误信息是%s' %(ip,username,exc))
return response

# 需要注意的是别忘记配置文件中配置自定义异常,不然不会生效
REST_FRAMEWORK = {'EXCEPTION_HANDLER':'自定义异常函数的路径'}
# APIResponse是自定义异常,可以处理drf没有处理过的异常

posted @ 2021-12-08 20:08  点滴180  阅读(47)  评论(0)    收藏  举报