Заставить Django записывать информацию в консоль и ошибки в файл
Я сделал следующую конфигурацию протоколирования:
settings.py
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",},
"file": {
"level": "ERROR",
"filters": ["require_debug_false"],
"class": "logging.FileHandler",
"filename": BASE_DIR / "debug.log",
},
"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": ["file", "console"], "level": "INFO",},
"django.server": {"handlers": ["django.server"], "level": "INFO", "propagate": False,},
},
}
И просто хочу нормальное логирование консоли Django наряду с логированием файла, когда происходят любые ошибки. В настоящее время это прекрасно регистрирует консольную информацию и создает debug.log
, но ничего в него не выводит. Это было проверено, просто вызвав синтаксическую ошибку в файле настроек
Что не так с этой конфигурацией?