Slide 32
Slide 32 text
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(request_id)s %(levelname)s ...'
},
},
'filters': {
'context': {
'()': 'demo.utils.ContextFilter',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
'filters': ['context'],
},
'postgres': {
'level': 'INFO',
'class': 'demo.utils.BufferingPostgresHandler',
'postgres_url': 'postgresql://localhost/demo',
'table': 'app_logs',
'capacity': 10,
'filters': ['context'],
},
},
'loggers': {
'__main__': {
'handlers': ['console'],
'level': 'INFO',
'propagate': False,
},
'demo': {
'handlers': ['console', 'postgres'],
'level': 'INFO',
'propagate': False,
},
'urllib3': {
'handlers': ['console', 'postgres'],
'level': 'DEBUG',
'propagate': False,
},
'sqlalchemy.engine': {
'handlers': ['console', 'postgres'],
'level': 'INFO',
'propagate': False,
},
}