# In settings.py U_LOGFILE_NAME = r'/path/to/log.txt' U_LOGFILE_SIZE = 1 * 1024 * 1024 U_LOGFILE_COUNT = 2 U_LOGFILE_APP1 = 'app1' U_LOGFILE_APP2 = 'app2' LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", #'datefmt' : "%d/%b/%Y %H:%M:%S" }, }, 'filters': { 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse' } }, 'handlers': { 'mail_admins': { 'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler' }, 'logfile': { 'level':'DEBUG', 'class':'logging.handlers.RotatingFileHandler', 'filename': U_LOGFILE_NAME, 'maxBytes': U_LOGFILE_SIZE, 'backupCount': U_LOGFILE_COUNT, 'formatter': 'standard', }, }, 'loggers': { 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True, }, U_LOGFILE_APP1: { 'handlers': ['logfile'], 'level': 'DEBUG', 'propagate': True, }, U_LOGFILE_APP2: { 'handlers': ['logfile'], 'level': 'DEBUG', 'propagate': True, }, } } # Usage: import os log = logging.getLogger(__name__) log.debug("debug") log.info("info") log.warn("warn") log.error("error")