Raven теперь подключается к сигналу got_request_exception () для перехвата необработанных исключений, полностью обходя систему ведения журнала, поэтому решение, предложенное dlowe, больше не работает.
Однако raven ищет атрибут skip_sentry
в экземпляре исключения, поэтому вы можете использовать промежуточное ПО для установки его на ошибки, которые вы хотите игнорировать:
import sys
import traceback
class FilterPostErrorsMiddleware(object):
"""
A middleware that prevents unreadable POST errors to reach Sentry.
"""
def process_exception(self, request, exception):
if isinstance(exception, IOError):
tb = sys.exc_info()[2]
for _, _, function, _ in traceback.extract_tb(tb):
if function == '_get_raw_post_data':
exception.skip_sentry = True
break
Примечание : вам нужно использовать последнюю версию raven (например, 1.8.4), поскольку предыдущие версии по ошибке проверяли атрибут skip_sentry
для типа исключения, а не для экземпляра.