====== Logging ====== ===== extra ===== import logging logger = logging.getLogger(__name__) d = {'clientip': '192.168.0.1', 'user': 'fbloggs'} logger = logging.getLogger('fm_update') logger.debug('Protocol problem: %s', 'connection reset', extra=d) ===== dictConfig ===== * [[https://docs.python.org/2/library/logging.config.html|15.8. logging.config — Logging configuration — Python 2.7.13]] * http://stackoverflow.com/questions/7507825/python-complete-example-of-dict-for-logging-config-dictconfig * https://pypi.python.org/pypi/colorlog/2.0.0 * https://pypi.python.org/pypi/coloredlogs import logging.config logging.config.dictConfig({ 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'standard': { 'format': '%(asctime)s [%(levelname)-7s] %(name)s: %(message)s', 'datefmt': '%Y-%m-%d %H:%M', }, 'colored': { '()': 'colorlog.ColoredFormatter', 'format': "%(log_color)s%(levelname)-8s%(reset)s %(message)s" } }, 'handlers': { 'default': { 'level': 'INFO', 'formatter': 'colored', 'class': 'logging.StreamHandler', }, }, 'loggers': { '': { 'handlers': ['default'], 'level': 'INFO', 'propagate': True }, 'django.request': { 'handlers': ['default'], 'level': 'WARN', 'propagate': False }, } })