forked from CGM_Public/pretix_original
Fix raven integration
This commit is contained in:
41
src/pretix/sentry.py
Normal file
41
src/pretix/sentry.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from threading import Lock
|
||||
|
||||
from raven.contrib.celery import SentryCeleryHandler
|
||||
from raven.contrib.django.apps import RavenConfig
|
||||
from raven.contrib.django.models import (
|
||||
SentryDjangoHandler, client, get_client, install_middleware,
|
||||
register_serializers,
|
||||
)
|
||||
|
||||
_setup_lock = Lock()
|
||||
|
||||
_initialized = False
|
||||
|
||||
|
||||
class CustomSentryDjangoHandler(SentryDjangoHandler):
|
||||
def install_celery(self):
|
||||
self.celery_handler = SentryCeleryHandler(client, ignore_expected=True).install()
|
||||
|
||||
|
||||
def initialize():
|
||||
global _initialized
|
||||
|
||||
with _setup_lock:
|
||||
if _initialized:
|
||||
return
|
||||
|
||||
register_serializers()
|
||||
install_middleware()
|
||||
|
||||
handler = CustomSentryDjangoHandler()
|
||||
handler.install()
|
||||
|
||||
# instantiate client so hooks get registered
|
||||
get_client() # NOQA
|
||||
|
||||
_initialized = True
|
||||
|
||||
|
||||
class App(RavenConfig):
|
||||
def ready(self):
|
||||
initialize()
|
||||
Reference in New Issue
Block a user