我的自定义中间件在某些情况下会引发PermissionDenied异常,向客户端返回403响应。我认为这是“正确”的做法。不幸的是,即使DEBUG
设置为False,每次发生这种情况时,它也会记录异常并进行回溯。
2023-05-08 10:27:25,293警告django.request Forbidden(Permission denied):/ Traceback(最近一次调用):File“/opt/project/env/lib/python3.9/site-packages/django/core/handlers/exception.py“,line 55,in inner response = get_response(request)File“/opt/project/myapp/middleware.py“,line 112,incallraise PermissionDenied django.core.exceptions.PermissionDenied
我不在乎这些例外。有没有一个简单的方法来防止他们被记录?
1条答案
按热度按时间qmb5sa221#
我看到了多种选择来实现您想要的:
案例A:你从来不关心django. request的回溯。
如果它不是自我解释:在settings.py中搜索名为
LOGGING
的大字典。在这里,您将记录器django.request添加到您的记录器中。默认情况下,它包含在日志中,但您需要添加它,以给予更多的规范,因为您不希望看到异常。添加django.request记录器之后,您可以将自定义格式化程序分配给它。该自定义格式化程序与详细格式化程序不同。区别是进程、线程和消息不记录!当然,你可以根据自己的需要调整它,也可以删除时间或其他什么。
请记住,这不是专门针对您的权限被拒绝错误的!然后由django.request(也是5xx)为所有日志设置。
案例B:您特别希望摆脱Permission denied错误
定义自定义过滤器引用。这将跳过django.request logger发出的每个权限拒绝错误。
让我知道这对你的效果如何。