Python 如何在Django Rest框架中记录400个响应的更多细节?

Python 如何在Django Rest框架中记录400个响应的更多细节?,python,django,logging,django-rest-framework,http-status-code-400,Python,Django,Logging,Django Rest Framework,Http Status Code 400,我已经用Django Rest框架构建了一个端点,有人正在向其发布数据。从今天早上开始,他收到了400条回复。在我的Kibana日志中,我只能确认他确实收到了400条回复。我需要调试这个,但我没有很多信息。所以我想记录更多关于400个回复的细节。因此,我想在我的视图集中执行以下操作 def create(self, request, *args, **kwargs): try: response = super().create(request, *args, **kwa

我已经用Django Rest框架构建了一个端点,有人正在向其发布数据。从今天早上开始,他收到了400条回复。在我的Kibana日志中,我只能确认他确实收到了400条回复。我需要调试这个,但我没有很多信息。所以我想记录更多关于400个回复的细节。因此,我想在我的视图集中执行以下操作

def create(self, request, *args, **kwargs):
    try:
        response = super().create(request, *args, **kwargs)
        return response
    except exceptions.ValidationError as e:
        logger.error(f"{e} in message: {request.data}")
        return Response(e, status=status.HTTP_400_BAD_REQUEST)

这似乎是可行的,但这并不是最合乎逻辑的做法。有人知道记录400个响应的更为类似python的方法吗?

我会检查
响应。status
值,它将是一个整数,然后我记录
响应。data
它将是一个类似于
dict
的对象

此外,Logstash非常喜欢类似JSON的项目,这可能更适合您的情况

def create(self, request, *args, **kwargs):
    response = super().create(request, *args, **kwargs)
    if response.status == 400:
        logger.error(response.data)
        
    return response
def创建(self、request、*args、**kwargs):
response=super().create(请求,*args,**kwargs)
如果response.status==400:
记录器。错误(响应。数据)

返回响应
我会问他发送到终点的有效载荷。我很乐意,但他不是最容易相处的人。所以我真的需要在我这边找到答案。