DRF的默认行为是引发5XX的异常,但是返回4XX的错误详细信息的有效响应。我想记录任何以4XX失败的API调用的请求和响应。
当前日志仅显示Bad Request : /path/api/
答案:自定义异常工作正常。
答案 0 :(得分:1)
您可以定义自己的自定义异常处理程序并访问您的请求,例如:
from rest_framework.views import exception_handler
def custom_exception_handler(exc, context):
response = exception_handler(exc)
if response is not None:
response.data['status_code'] = response.status_code
response.data['request'] = context['request']
return response
并在settings.py
中显示您的自定义处理程序,例如:
REST_FRAMEWORK = {
'EXCEPTION_HANDLER': 'my_project.my_app.utils.custom_exception_handler'
}