From 341513b016559c3e388937f458d7d44da912e1cc Mon Sep 17 00:00:00 2001 From: ajurna Date: Fri, 22 May 2020 09:38:19 +0100 Subject: [PATCH] adding logging --- cbreader/settings/base.py | 2 + cbreader/settings/logger.py | 78 +++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 cbreader/settings/logger.py diff --git a/cbreader/settings/base.py b/cbreader/settings/base.py index 5059152..c674737 100644 --- a/cbreader/settings/base.py +++ b/cbreader/settings/base.py @@ -113,3 +113,5 @@ RECAPTCHA_PRIVATE_KEY = os.getenv("DJANGO_RECAPTCHA_PRIVATE_KEY", '') RECAPTCHA_PUBLIC_KEY = os.getenv("DJANGO_RECAPTCHA_PUBLIC_KEY", '') COMIC_DIR = "/media/comics" + +from .logger import LOGGING diff --git a/cbreader/settings/logger.py b/cbreader/settings/logger.py new file mode 100644 index 0000000..4fef563 --- /dev/null +++ b/cbreader/settings/logger.py @@ -0,0 +1,78 @@ +import os +import logging + +from .base import BASE_DIR +from .base import DEBUG + +# Usage in other modules: +# +# from djangoproject.logger import log +# log.info('some output') +# +# Note, doing this manually in other modules results in nicer output: +# +# import logging +# log = logging.getLogger(__name__) +# log.info('some output') + +# the basic logger other apps can import +log = logging.getLogger(__name__) + +# the minimum reported level +if DEBUG: + min_level = 'DEBUG' +else: + min_level = 'INFO' + +# the minimum reported level for Django's modules +# optionally set to DEBUG to see database queries etc. +# or set to min_level to control it using the DEBUG flag +min_django_level = 'INFO' + +# logging dictConfig configuration +LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, # keep Django's default loggers + 'formatters': { + # see full list of attributes here: + # https://docs.python.org/3/library/logging.html#logrecord-attributes + 'verbose': { + 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' + }, + 'simple': { + 'format': '%(levelname)s %(message)s' + }, + 'timestampthread': { + 'format': "%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] [%(name)-20.20s] %(message)s", + }, + }, + 'handlers': { + 'logfile': { + # optionally raise to INFO to not fill the log file too quickly + 'level': min_level, # this level or higher goes to the log file + 'class': 'logging.handlers.RotatingFileHandler', + # IMPORTANT: replace with your desired logfile name! + 'filename': os.path.join(BASE_DIR, 'djangoproject.log'), + 'maxBytes': 50 * 10**6, # will 50 MB do? + 'backupCount': 3, # keep this many extra historical files + 'formatter': 'timestampthread' + }, + 'console': { + 'level': min_level, # this level or higher goes to the console + 'class': 'logging.StreamHandler', + }, + }, + 'loggers': { + 'django': { # configure all of Django's loggers + 'handlers': ['logfile', 'console'], + 'level': min_django_level, # this level or higher goes to the console + 'propagate': False, # don't propagate further, to avoid duplication + }, + # root configuration – for all of our own apps + # (feel free to do separate treatment for e.g. brokenapp vs. sth else) + '': { + 'handlers': ['logfile', 'console'], + 'level': min_level, # this level or higher goes to the console, + }, + }, +} \ No newline at end of file