2014-07-17 20 views
7

Belirli bir işlevden veya django modülünden gelen tüm özel durumları görmezden gelmek için gönderilen/raven'i kullanmak istiyorum, ancak belgelere ve kodlara bakarak, yalnızca özel bir özel durumu görmezden gelmek için ekstra bir özellik ekleyerek bir seçenek gördüm. İşlev adına veya modül adına göre istisnaları görmezden gelmenin bir yolu var mı? Teşekkürler! Ben belirli bir istisnalar dikkate almak istemediğiniz takdirde böyle IGNORE_EXCEPTIONS ekleyebilirsiniz gördü kuzgun kaynağı okumak,django ile krupiye/kuzgun: belirli istisnaları nasıl görmezden gelinir?

cevap

5

:

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

belli modüllerin dışlama gelince/en iyi yolu dosyalarını Muhtemelen kendi müşterinizi yazmak ve nöbetçi bir mesaj gönderip göndermemeye karar vermek olacaktır. Tüm verileri daha erişilebilir bir biçimde oluşturduğundan, send yöntemini geçersiz kılmanız gerektiğini düşünür.

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) 

ve sonra settings.py yılında özel müşteri set:

Böyle yapabileceğini

SENTRY_CLIENT = 'path.to.module.MyClient' 

Eğer kontrol etsen görmezden için daha sofistike kurallar uygulamak istiyorsanız ne verilen verilerle (kwargs) yapabilir.

İlgili konular