2014-07-17 5 views
7

센트리/레이븐이 특정 함수 또는 장고 모듈의 모든 예외를 무시하고 싶지만 문서와 코드를 살펴보면 추가 속성을 추가하여 사용자 정의 예외를 무시할 수있는 옵션 만 보았습니다. 함수 이름이나 모듈 이름으로 예외를 무시할 수 있습니까? 감사! 난 당신이 특정 예외를 무시하려는 경우이 같은 IGNORE_EXCEPTIONS에 추가 할 수 있습니다 것을보고 까마귀의 소스를 통해 읽기장고와 레이븐 : 특정 예외를 무시하는 방법?

답변

5

:

RAVEN_CONFIG = { 
    'dsn': '...', 
    'IGNORE_EXCEPTIONS': ['exceptions.ZeroDivisionError', 'some.other.module.CustomException'], 
    ... 
} 

을 특정 모듈의 배제에 관해서는/가장 좋은 방법을 파일 아마도 자신의 클라이언트를 작성하고 센트리에게 메시지를 보낼지 여부를 결정하는 것이 될 것입니다. 더 접근하기 쉬운 형태로 모든 데이터를 가지고 있으므로 send 메서드를 재정의해야한다고 생각합니다.

from raven.contrib.django.client import DjangoClient 


class MyClient(DjangoClient): 

    def send(self, **kwargs): 
     ''' 
     check if culprit (event name) should be skipped 
     ''' 
     if kwargs.get('culprit', '').startswith('my.module.to.skip'): 
      self.logger.info('Skipping entry') 
     else: 
      return super(MyClient, self).send(**kwargs) 

을 다음 settings.py에서 사용자 정의 클라이언트를 설정합니다 :

이 같은 그것을 할 수

SENTRY_CLIENT = 'path.to.module.MyClient' 

을 당신이 아마 확인해야 무시에 대한보다 정교한 규칙을 구현하려면 무엇을 주어진 데이터 (kwargs)로 할 수 있습니다.