Bug #4034
Rendre raven optionnel
100%
Description
Cela reste une question.
Proposition pour le settings :
diff --git a/calebasse/settings/common.py b/calebasse/settings/common.py index 20c4da7..ef94d91 100644 --- a/calebasse/settings/common.py +++ b/calebasse/settings/common.py @@ -164,7 +164,6 @@ INSTALLED_APPS = ( 'calebasse.statistics', 'calebasse.middleware.request', 'south', - 'raven.contrib.django.raven_compat' ) INTERNAL_IPS=('127.0.0.1',) @@ -213,10 +212,6 @@ LOGGING = { 'address': '/dev/log', 'max_length': 999, }, - 'sentry': { - 'level': 'ERROR', - 'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler', - }, }, 'loggers': { 'django.db.backends': { @@ -224,18 +219,13 @@ LOGGING = { 'handlers': ['console'], 'propagate': False, }, - 'raven': { - 'level': 'DEBUG', - 'handlers': ['console'], - 'propagate': False, - }, 'sentry.errors': { 'level': 'DEBUG', 'handlers': ['console'], 'propagate': False, }, '': { - 'handlers': ['sentry', 'syslog'], + 'handlers': ['syslog'], 'level': 'DEBUG' if DEBUG else 'INFO', 'propagate': True, } @@ -258,11 +248,26 @@ AJAX_LOOKUP_CHANNELS = { # Default URL after login LOGIN_REDIRECT_URL = '/' -# Sentry / raven configuration -# You need to overload this option in the local_settings.py -RAVEN_CONFIG = { - 'dsn': None, -} +try: + import raven + INSTALLED_APPS += ('raven.contrib.django.raven_compat', ) + LOGGING['handlers']['sentry'] = { + 'level': 'ERROR', + 'class': 'raven.contrib.django.raven_compat.handlers.SentryHandler', + } + LOGGING['loggers']['raven'] = { + 'level': 'DEBUG', + 'handlers': ['console'], + 'propagate': False, + } + LOGGING['loggers']['']['handlers'].append('sentry') + # Sentry / raven configuration + # You need to overload this option in the local_settings.py + RAVEN_CONFIG = { + 'dsn': None, + } +except: + pass
Associated revisions
History
Updated by Frédéric Péters over 11 years ago
Comme le local_settings.py devra de toute façon définir le RAVEN_CONFIG, pourquoi ne pas simplement, après le chargement de celui-ci, si RAVEN_CONFIG est défini, faire les changements (INSTALLED_APPS, LOGGING) mentionnés ici ?
Updated by Jérôme Schneider over 11 years ago
Je me demande si c'est vraiment pertinent de mettre raven comme une dépendance optionnelle. D'une part car on devrait installer Calebasse avec raven dans la plupart des cas et d'autre part car python-entrouvert dépend également de raven.
Je tiens à préciser que si on laisse RAVEN_CONFIG avec un dsn à None ou qu'on le commente raven n'est pas utilisé. La seule contrainte de laisser la solution actuelle c'est de devoir installer raven mais vu qu'on dépend de python-entrouvert qui en dépend également ça ne changera rien.
Si tu y tiens je remplacerais juste le except par un except ImportError.
Quand à la remarque de Fred je ne suis pas sur que j'ai envie de me retrouver avec INSTALLED_APPS et LOGGING dans le local_settings sachant que le but est de remplacer le local_settings par un fichier de configuration à base de variables d’environnement.
Edit : j'ai rêvé pour python-entrouvert je fais une proposition de patch
Updated by Frédéric Péters over 11 years ago
Quand à la remarque de Fred je ne suis pas sur que j'ai envie de me retrouver avec INSTALLED_APPS et LOGGING dans le local_settings sachant que le but est de remplacer le local_settings par un fichier de configuration à base de variables d’environnement.
Il s'agissait pour moi de faire les modifications dans le settings.py, après l'import du local_settings.py, quand celui-ci définit RAVEN_CONFIG.
Updated by Frédéric Péters over 11 years ago
Quant à python-entrouvert, ce devrait être pour moi un module uniquement nécessaire et spécifique à nos déploiements, comme il a été créé pour le VersionsMiddleware, et non pas une collection variée d'éléments recyclables.
Updated by Jérôme Schneider over 11 years ago
Frédéric Péters a écrit :
Quant à python-entrouvert, ce devrait être pour moi un module uniquement nécessaire et spécifique à nos déploiements, comme il a été créé pour le VersionsMiddleware, et non pas une collection variée d'éléments recyclables.
Comme dit dans mon "edit" python-entrouvert ne dépend pas de raven c'est moi qui ait rêvé.
Updated by Jérôme Schneider over 11 years ago
Frédéric Péters a écrit :
Quand à la remarque de Fred je ne suis pas sur que j'ai envie de me retrouver avec INSTALLED_APPS et LOGGING dans le local_settings sachant que le but est de remplacer le local_settings par un fichier de configuration à base de variables d’environnement.
Il s'agissait pour moi de faire les modifications dans le settings.py, après l'import du local_settings.py, quand celui-ci définit RAVEN_CONFIG.
J'avais mal saisi ton message, effectivement c'est une bonne solution. Je vais proposer un patch.
Updated by Jérôme Schneider over 11 years ago
- Status changed from En cours to Résolu (à déployer)
- % Done changed from 0 to 100
Appliqué par commit calebasse|commit:d02ed08a261ba798f6cd53ecc4b9695940a9aac1.
Updated by Jérôme Schneider over 11 years ago
Appliqué par commit aps42:calebasse|commit:d02ed08a261ba798f6cd53ecc4b9695940a9aac1.
settings: render raven optionnal
Closes #4034