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
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a plus de 10 ans
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 ?
Mis à jour par Jérôme Schneider il y a plus de 10 ans
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
Mis à jour par Frédéric Péters il y a plus de 10 ans
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.
Mis à jour par Frédéric Péters il y a plus de 10 ans
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.
Mis à jour par Jérôme Schneider il y a plus de 10 ans
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é.
Mis à jour par Jérôme Schneider il y a plus de 10 ans
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.
Mis à jour par Jérôme Schneider il y a plus de 10 ans
- Statut changé de En cours à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit calebasse|commit:d02ed08a261ba798f6cd53ecc4b9695940a9aac1.
Mis à jour par Jérôme Schneider il y a plus de 10 ans
Appliqué par commit aps42:calebasse|commit:d02ed08a261ba798f6cd53ecc4b9695940a9aac1.
settings: render raven optionnal
Closes #4034