Skip to content

Instantly share code, notes, and snippets.

@darthwade
Created August 1, 2014 20:25
Show Gist options
  • Save darthwade/d916711bb54661ce5ab8 to your computer and use it in GitHub Desktop.
Save darthwade/d916711bb54661ce5ab8 to your computer and use it in GitHub Desktop.
Django logging configuration.
from __future__ import unicode_literals
import os
from .base import BASE_DIR
LOGS_DIR = os.path.join(BASE_DIR, 'tmp/logs')
LOGGING = {
'version': 2,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
},
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'formatters': {
'general': {
'format': '[%(asctime)s] %(levelname)s [%(name)s - %(filename)s:%(lineno)s] %(message)s '
'(EXCEPTION: %(exc_info)s)',
'datefmt': '%d/%b/%Y %H:%M:%S'
},
'request': {
'format': '[%(asctime)s] %(levelname)s [%(name)s - %(filename)s:%(lineno)s] %(message)s '
'(STATUS: %(status_code)s; REQUEST: %(request)s; EXCEPTION: %(exc_info)s)',
'datefmt': '%d/%b/%Y %H:%M:%S'
},
'db': {
'format': '[%(asctime)s] %(levelname)s [%(name)s - %(filename)s:%(lineno)s] %(message)s '
'(DURATION: %(duration)s; SQL: %(sql)s; PARAMS: %(params)s; EXCEPTION: %(exc_info)s)',
'datefmt': '%d/%b/%Y %H:%M:%S'
},
},
'handlers': {
'null': {
'class': 'logging.NullHandler',
},
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'general',
},
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
},
'django': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'django.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'general',
},
'security': {
'level': 'WARNING',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'security.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'general',
},
'db': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'db.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'db',
},
'request': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'request.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'request',
},
'celery': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'celery.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'general',
},
'delayed_tasks': {
'level': 'INFO',
#'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'delayed_tasks.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'general',
},
'apps': {
'level': 'WARNING',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'apps.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'general',
},
'api': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGS_DIR, 'api.log'),
'maxBytes': 16 * 1024 * 1024, # 16 MB
'backupCount': 5,
'formatter': 'general',
},
},
'loggers': {
'django': {
'handlers': ['django'],
'level': 'ERROR',
'propagate': False,
},
'django.request': {
'handlers': ['request', 'mail_admins'],
'level': 'ERROR',
'propagate': False,
},
'django.security': {
'handlers': ['security', 'mail_admins'],
'level': 'WARNING',
'propagate': False,
},
'django.db.backends': {
'handlers': ['db', 'mail_admins'],
'level': 'ERROR',
'propagate': False,
},
'celery': {
'handlers': ['celery'],
'level': 'ERROR',
},
'celery.task': {
'handlers': ['delayed_tasks'],
'level': 'INFO',
},
'apps': {
'handlers': ['apps'],
'level': 'WARNING',
},
'common': {
'handlers': ['apps'],
'level': 'WARNING',
},
'api': {
'handlers': ['api'],
'level': 'ERROR',
},
'py.warnings': {
'handlers': ['console'],
'propagate': False,
},
'': {
'handlers': ['console'],
'level': 'DEBUG',
},
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment