This is quick configuration for Django logger to log with application name followed with function, and store them into log files.
1. Edit logger settings
settings.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import os CURRENT = os.path.dirname( __file__ ) LOGGING = { ‘version’: 1, ‘disable_existing_loggers’: False, ‘filters’: { ‘require_debug_false’: { ‘()’: ‘django.utils.log.RequireDebugFalse’ } }, ‘formatters’: { ‘verbose’: { ‘format’: ‘%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s’ }, ‘semi_verbose’: { ‘format’: ‘[%(levelname)s] %(module)s %(name)s %(funcName)s(): %(message)s’ }, ‘simple’: { ‘format’: ‘%(levelname)s %(message)s’ }, }, ‘handlers’: { ‘mail_admins’: { ‘level’: ‘ERROR’, ‘filters’: [‘require_debug_false’], ‘class’: ‘django.utils.log.AdminEmailHandler’ }, ‘logfile’: { ‘level’:’DEBUG’, ‘class’:’logging.handlers.RotatingFileHandler’, ‘filename’: os.path.abspath(os.path.join(CURRENT, "..", "logs", "server")), ‘maxBytes’: 50000, ‘backupCount’: 2, ‘formatter’: ‘semi_verbose’, }, ‘console’:{ ‘level’:’INFO’, ‘class’:’logging.StreamHandler’, ‘formatter’: ‘simple’ }, }, ‘loggers’: { ‘django.request’: { ‘handlers’: [‘mail_admins’, ‘console’], ‘level’: ‘ERROR’, ‘propagate’: True, }, ‘django’: { ‘handlers’:[‘console’], ‘propagate’: True, ‘level’:’WARN’, }, ‘django.db.backends’: { ‘handlers’: [‘console’], ‘level’: ‘DEBUG’, ‘propagate’: False, }, ‘myapp’: { ‘handlers’: [‘console’, ‘logfile’], ‘level’: ‘DEBUG’, }, } } |
2. Create “logs” folder into your project root folder.
3. Start using Logger
1 2 3 4 | import logging log = logging.getLogger("myapp") log.info("Hello world!") |