From 08f0935ded55e25c1d006bd450ffe85e6bbbbc24 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 24 Jul 2012 11:41:27 +0200 Subject: [PATCH] =?UTF-8?q?r=C3=A9=C3=A9criture=20de=20la=20configuration?= =?UTF-8?q?=20des=20loggers=20pour=20utiliser=20syslog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Les loggers python ne fonctionnent pas en multiprocess, il faut utiliser un logger distant, le plus simple est d'utiliser syslog. La configuration du logger dans le fichier local_settings.py.example a été enlevé car c'est bien trop compliqué d'expliquer que la plupart des handlers proposés par la librairie logging de python ne vont pas fonctionner. Ce commit ajoute aussi une section sur les logs au fichier README. --- README | 13 ++++++++ local_settings.py.example | 29 ------------------ polynum/request/templates/list_request.html | 2 +- polynum/settings.py | 33 +++++++++++++-------- 4 files changed, 34 insertions(+), 43 deletions(-) diff --git a/README b/README index 68811c4..8e954ec 100644 --- a/README +++ b/README @@ -31,3 +31,16 @@ Avec SQLite:: Avec PostgreSQL: python manage.py sqlindexes | psql + +Logs +---- + +Les logs sont envoyés vers le syslog local via /dev/log avec pour nom de +service local0. Les logs de niveau debug ne sont envoyés que si l'option DEBUG +est à True dans votre fichier local_settings.py. + +Pour récupérer ces logs dans un fichier à part vous pouvez ajouter la +ligne suivante dans le fichier de configuration du démon syslog local.:: + + local0.* -/var/log/polynum.log + diff --git a/local_settings.py.example b/local_settings.py.example index 5fc9321..a006233 100644 --- a/local_settings.py.example +++ b/local_settings.py.example @@ -87,32 +87,3 @@ TEMPLATE_DIRS = ( OAI_ADMIN_EMAIL = 'admin@univ.fr' OAI_TEXT = 'Polynum documents' OAI_REPOSITORY_NAME = 'Polynum OAI-PMH repository' - -# -# Logging configuration -# See http://docs.djangoproject.com/en/dev/topics/logging -# -LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse' - } - }, - 'handlers': { - 'mail_admins': { - 'level': 'ERROR', - 'filters': ['require_debug_false'], - 'class': 'django.utils.log.AdminEmailHandler' - } - }, - 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, - }, - } -} - diff --git a/polynum/request/templates/list_request.html b/polynum/request/templates/list_request.html index 1de402c..1ec7a77 100644 --- a/polynum/request/templates/list_request.html +++ b/polynum/request/templates/list_request.html @@ -52,7 +52,7 @@ Here starts the filter block
{% for filter_choice in filter_choices %}
-

{% for url, caption in filter_choice.choices %} +

{% for url, caption in filter_choice.choices %} {{ caption }} {% endfor %}

diff --git a/polynum/settings.py b/polynum/settings.py index 7c7889f..f88fd7f 100644 --- a/polynum/settings.py +++ b/polynum/settings.py @@ -3,11 +3,12 @@ import os.path import django.conf.global_settings as DEFAULT_SETTINGS from django.core.urlresolvers import reverse_lazy +from logging.handlers import SysLogHandler PROJECT_ROOT = os.path.join(os.path.dirname(__file__), '.') -DEBUG = True -TEMPLATE_DEBUG = DEBUG +DEBUG = False +TEMPLATE_DEBUG = False ADMINS = ( # ('Your Name', 'your_email@example.com'), @@ -161,26 +162,30 @@ CRISPY_TEMPLATE_PACK = 'bootstrap' # more details on how to customize your logging configuration. LOGGING = { 'version': 1, - 'disable_existing_loggers': False, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse' - } + 'formatters': { + 'syslog': { + 'format': 'polynum(pid=%(process)d) %(levelname)s %(message)s' + }, }, 'handlers': { + 'syslog':{ + 'level':'DEBUG', + 'class':'logging.handlers.SysLogHandler', + 'formatter': 'syslog', + 'facility': SysLogHandler.LOG_LOCAL0, + 'address': '/dev/log', + }, 'mail_admins': { 'level': 'ERROR', - 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' } }, 'loggers': { - 'django.request': { - 'handlers': ['mail_admins'], - 'level': 'ERROR', - 'propagate': True, + '': { + 'handlers': ['mail_admins', 'syslog' ], + 'level': 'INFO', }, - } + }, } AUTHENTICATION_BACKENDS = ('polynum.base.backends.ModelBackend',) @@ -208,6 +213,7 @@ if CAS_SERVER_URL: LOGIN_REDIRECT_URL = reverse_lazy('list_request') if DEBUG: + TEMPLATE_DEBUG = True MIDDLEWARE_CLASSES += ( 'debug_toolbar.middleware.DebugToolbarMiddleware', ) @@ -217,6 +223,7 @@ if DEBUG: DEBUG_TOOLBAR_CONFIG = { 'INTERCEPT_REDIRECTS': False, } + LOGGING['loggers']['']['level'] = 'DEBUG' try: from gunicorn import version_info