我正在运行一个Django站点(通过Apache/mod_python),我使用Django的工具来通知我和其他开发人员内部服务器错误。有时会出现这样的错误:
Traceback (most recent call last):
File "/opt/webapp/externals/lib/django/core/handlers/base.py", line 92, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/opt/webapp/csite/apps/customers/views.py", line 29, in feedback
form = FeedbackForm(request.POST)
File "/opt/webapp/externals/lib/django/core/handlers/modpython.py", line 113, in _get_post
self._load_post_and_files()
File "/opt/webapp/externals/lib/django/core/handlers/modpython.py", line 96, in _load_post_and_files
self._post, self._files = http.QueryDict(self.raw_post_data, encoding=self._encoding), datastructures.MultiValueDict()
File "/opt/webapp/externals/lib/django/core/handlers/modpython.py", line 163, in _get_raw_post_data
self._raw_post_data = self._req.read()
IOError: Client read error (Timeout?)
据我所知,那些IOError
是由客户端在错误的时刻断开连接而产生的,这不是我网站的问题。
如果是这种情况:我能以某种方式禁用这些错误的电子邮件吗?我真的不想知道我无法修复的错误,也不想知道真正的错误。
3条答案
按热度按时间waxmsbnn1#
通过@dlowe扩展Django 1.3的解决方案,我们可以将完整的工作示例编写为:
settings.py
common/logging.py
xj3cbfub2#
您应该能够编写一个中间件来捕获异常,然后可以“沉默”这些特定的异常。
https://docs.djangoproject.com/en/2.2/topics/http/middleware/
6mzjoqzu3#
在django 1.3及更高版本中,你可以使用一个日志过滤器类来抑制你不感兴趣的异常。下面是我用来严格抑制从
_get_raw_post_data()
引发的IOError异常的日志过滤器类:在Django 1.4中,你将能够消除大部分的复杂性,并抑制新的异常类
UnreadablePostError
。(参见this patch)。