From b811d1945b3d3dc5f087c2a1f6295ccc504473bf Mon Sep 17 00:00:00 2001 From: Sonny Date: Sun, 26 Apr 2020 21:06:29 +0200 Subject: [PATCH] Update logging --- src/newsreader/celery.py | 6 +--- src/newsreader/conf/base.py | 67 +++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/src/newsreader/celery.py b/src/newsreader/celery.py index aa15a08..3eb59e0 100644 --- a/src/newsreader/celery.py +++ b/src/newsreader/celery.py @@ -3,12 +3,8 @@ import os from celery import Celery -# note: this should be consistent with the setting from manage.py os.environ.setdefault("DJANGO_SETTINGS_MODULE", "newsreader.conf.dev") -# note: use the --workdir flag when running from different directories app = Celery("newsreader") - -app.config_from_object("django.conf:settings") - +app.config_from_object("django.conf:settings", namespace="CELERY") app.autodiscover_tasks() diff --git a/src/newsreader/conf/base.py b/src/newsreader/conf/base.py index 743973d..3692deb 100644 --- a/src/newsreader/conf/base.py +++ b/src/newsreader/conf/base.py @@ -94,6 +94,69 @@ CACHES = { }, } +# Logging +# https://docs.djangoproject.com/en/2.2/topics/logging/#configuring-logging +LOGGING = { + "version": 1, + "disable_existing_loggers": False, + "filters": { + "require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}, + "require_debug_true": {"()": "django.utils.log.RequireDebugTrue"}, + }, + "formatters": { + "django.server": { + "()": "django.utils.log.ServerFormatter", + "format": "[{server_time}] {message}", + "style": "{", + }, + "syslog": {"class": "logging.Formatter", "format": "{message}", "style": "{"}, + }, + "handlers": { + "console": { + "level": "INFO", + "filters": ["require_debug_true"], + "class": "logging.StreamHandler", + }, + "django.server": { + "level": "INFO", + "class": "logging.StreamHandler", + "formatter": "django.server", + }, + "mail_admins": { + "level": "ERROR", + "filters": ["require_debug_false"], + "class": "django.utils.log.AdminEmailHandler", + }, + "syslog": { + "level": "INFO", + "filters": ["require_debug_false"], + "class": "logging.handlers.SysLogHandler", + "formatter": "syslog", + "address": "/dev/log", + }, + "syslog_errors": { + "level": "ERROR", + "filters": ["require_debug_false"], + "class": "logging.handlers.SysLogHandler", + "formatter": "syslog", + "address": "/dev/log", + }, + }, + "loggers": { + "django": { + "handlers": ["console", "mail_admins", "syslog_errors"], + "level": "INFO", + }, + "django.server": { + "handlers": ["django.server"], + "level": "INFO", + "propagate": False, + }, + "celery": {"handlers": ["syslog", "console"], "level": "INFO"}, + "celery.task": {"handlers": ["syslog", "console"], "level": "INFO"}, + }, +} + # Password validation # https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ @@ -155,6 +218,10 @@ SWAGGER_SETTINGS = { "DOC_EXPANSION": "list", } +# Celery +# https://docs.celeryproject.org/en/stable/userguide/configuration.html +CELERY_WORKER_HIJACK_ROOT_LOGGER = False + REGISTRATION_OPEN = True REGISTRATION_AUTO_LOGIN = True ACCOUNT_ACTIVATION_DAYS = 7