8cfaed0aa8cb24f4698ad2f91b9b4dfee2ab8a5d
1 # GNU MediaGoblin -- federated, autonomous media hosting
2 # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU Affero General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU Affero General Public License for more details.
14 # You should have received a copy of the GNU Affero General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
20 from mediagoblin
.tools
import pluginapi
22 _log
= logging
.getLogger(__name__
)
26 from raven
import Client
27 config
= pluginapi
.get_config('mediagoblin.plugins.raven')
29 sentry_dsn
= config
.get('sentry_dsn')
34 _log
.info('Setting up raven from plugin config: {0}'.format(
36 client
= Client(sentry_dsn
)
37 elif os
.environ
.get('SENTRY_DSN'):
38 _log
.info('Setting up raven from SENTRY_DSN environment variable: {0}'\
39 .format(os
.environ
.get('SENTRY_DSN')))
40 client
= Client() # Implicitly looks for SENTRY_DSN
43 _log
.error('Could not set up client, missing sentry DSN')
50 from raven
.contrib
.celery
import register_signal
54 register_signal(client
)
58 config
= pluginapi
.get_config('mediagoblin.plugins.raven')
60 conf_setup_logging
= False
61 if config
.get('setup_logging'):
62 conf_setup_logging
= bool(int(config
.get('setup_logging')))
64 if not conf_setup_logging
:
67 from raven
.handlers
.logging
import SentryHandler
68 from raven
.conf
import setup_logging
72 _log
.info('Setting up raven logging handler')
74 setup_logging(SentryHandler(client
))
78 from raven
.middleware
import Sentry
82 _log
.info('Attaching raven middleware...')
84 return Sentry(app
, client
)
88 'setup': setup_logging
,
89 'wrap_wsgi': wrap_wsgi
,
90 'celery_logging_setup': setup_logging
,
91 'celery_setup': setup_celery
,