4.3. Settings Logging
4.3.1. To Console
>>>
... LOGGING = {
... 'version': 1,
... 'disable_existing_loggers': False,
... 'handlers': {
... 'console': {
... 'class': 'logging.StreamHandler',
... },
... },
... 'loggers': {
... 'django': {
... 'handlers': ['console'],
... 'level': 'INFO',
... 'propagate': True,
... },
... },
... }
4.3.2. To File
>>>
... LOGGING = {
... 'version': 1,
... 'disable_existing_loggers': False,
... 'handlers': {
... 'file': {
... 'class': 'logging.FileHandler',
... 'filename': '/tmp/myproject.log',
... },
... },
... 'loggers': {
... 'django': {
... 'handlers': ['file'],
... 'level': 'INFO',
... 'propagate': True,
... },
... },
... }
4.3.3. Show SQL Queries
>>>
... LOGGING = {
... 'version': 1,
... 'disable_existing_loggers': False,
... 'handlers': {
... 'console': {
... 'class': 'logging.StreamHandler',
... },
... },
... 'loggers': {
... 'django': {
... 'handlers': ['console'],
... 'level': 'INFO',
... 'propagate': True,
... },
... 'django.db': {
... 'handlers': ['console'],
... 'level': 'DEBUG',
... 'propagate': True
... },
... },
... }
4.3.4. Default
>>>
... LOGGING = {
... 'version': 1,
... 'disable_existing_loggers': False,
... 'filters': {
... 'require_debug_false': {
... '()': 'django.utils.log.RequireDebugFalse',
... },
... 'require_debug_true': {
... '()': 'django.utils.log.RequireDebugTrue',
... },
... },
... 'formatters': {
... 'django.server': {
... '()': 'django.utils.log.ServerFormatter',
... 'format': '[{server_time}] {message}',
... 'style': '{',
... }
... },
... 'handlers': {
... 'console': {
... 'level': 'INFO',
... 'filters': ['require_debug_true'],
... 'class': 'logging.StreamHandler',
... },
... 'django.server': {
... 'level': 'INFO',
... 'class': 'logging.StreamHandler',
... 'formatter': 'django.server',
... },
... 'mail_admins': {
... 'level': 'ERROR',
... 'filters': ['require_debug_false'],
... 'class': 'django.utils.log.AdminEmailHandler',
... },
... },
... 'loggers': {
... 'django': {
... 'handlers': ['console', 'mail_admins'],
... 'level': 'INFO',
... },
... 'django.server': {
... 'handlers': ['django.server'],
... 'level': 'INFO',
... 'propagate': False,
... },
... },
... }
4.3.5. Use Case - 0x01
>>>
... LOGGING = {
... 'version': 1,
... 'disable_existing_loggers': False,
... 'formatters': {
... 'standard': {
... 'datefmt': '%Y-%m-%d %H:%M:%S',
... 'format': '%(asctime)s [%(levelname)s] %(name)s: %(message)s'
... },
... },
... 'handlers': {
... 'console': {
... 'formatter': 'standard',
... 'class': 'logging.StreamHandler',
... },
... },
... 'loggers': {
... '': {
... 'handlers': ['console'],
... 'level': 'INFO',
... 'propagate': True
... },
... 'django.db': {
... 'handlers': ['console'],
... 'level': 'DEBUG',
... 'propagate': False
... },
... 'django.request': {
... 'handlers': ['console'],
... 'level': 'WARN',
... 'propagate': False
... },
... }
... }
4.3.6. Use Case - 0x02
>>>
... LOGGING = {
... 'version': 1,
... 'disable_existing_loggers': False,
... 'formatters': {
... 'simple': {
... 'format': '{levelname} {name} {message}',
... 'style': '{',
... },
... },
... 'handlers': {
... 'console': {
... 'class': 'logging.StreamHandler',
... 'formatter': 'simple',
... },
... },
... 'loggers': {
... 'django': {
... 'handlers': ['console'],
... 'level': os.getenv('DJANGO_LOG_LEVEL', default='DEBUG'),
... },
... 'django.db.backends': {
... 'handlers': ['console'],
... 'level': os.getenv('DJANGO_LOG_LEVEL', default='DEBUG'),
... },
... 'django.server': {
... 'handlers': ['console'],
... 'level': os.getenv('DJANGO_LOG_LEVEL', default='DEBUG'),
... },
... 'django.request': {
... 'handlers': ['console'],
... 'level': os.getenv('DJANGO_LOG_LEVEL', default='DEBUG'),
... },
... 'django.utils.security': {
... 'handlers': ['console'],
... 'level': os.getenv('DJANGO_LOG_LEVEL', default='DEBUG'),
... },
... 'django.utils.autoreload': {
... 'handlers': ['console'],
... 'level': os.getenv('DJANGO_LOG_LEVEL', default='ERROR'),
... },
... },
... }
4.3.7. Use Case - 0x03
>>>
... LOGGING = {
... 'version': 1,
... 'disable_existing_loggers': False,
... 'formatters': {
... 'verbose': {
... 'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
... 'style': '{',
... },
... 'simple': {
... 'format': '{levelname} {message}',
... 'style': '{',
... },
... },
... 'filters': {
... 'special': {
... '()': 'project.logging.SpecialFilter',
... 'foo': 'bar',
... },
... 'require_debug_true': {
... '()': 'django.utils.log.RequireDebugTrue',
... },
... },
... 'handlers': {
... 'console': {
... 'level': 'INFO',
... 'filters': ['require_debug_true'],
... 'class': 'logging.StreamHandler',
... 'formatter': 'simple',
... },
... 'mail_admins': {
... 'level': 'ERROR',
... 'class': 'django.utils.log.AdminEmailHandler',
... 'filters': ['special'],
... },
... },
... 'loggers': {
... 'django': {
... 'handlers': ['console'],
... 'propagate': True,
... },
... 'django.request': {
... 'handlers': ['mail_admins'],
... 'level': 'ERROR',
... 'propagate': False,
... },
... 'myproject.custom': {
... 'handlers': ['console', 'mail_admins'],
... 'level': 'INFO',
... 'filters': ['special'],
... },
... },
... }