Логгер, который вы настроили, называется django
, который будет соответствовать всему коду в пакете django
верхнего уровня - по сути, код фреймворка Django.
Для вашего собственного кода вам необходимо настроитьотдельный регистратор на основе имени вашего приложения, который будет применяться к регистраторам, созданным с logging.getLogger(__name__)
в любом модуле внутри этого приложения.Например, если ваше приложение называется myapp
:
'myapp': { # Will apply to myapp/views.py, myapp/models.py etc.
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
}
Кроме того, рекомендуется настроить корневой регистратор, который действует как «перехват», для регистрации любых сообщений, которые не соответствуютявный регистратор.Вы можете установить корневой логгер на ERROR
, чтобы не пропустить ни одной ошибки, исходящей из любой части системы.Вы используете пустую строку для имени корневого логгера.
'': {
'handlers': ['file'],
'level': 'ERROR',
}
Итак, все вместе:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'file': {
'level': 'DEBUG',
'class': 'logging.FileHandler',
'filename': 'logging.txt',
},
},
'loggers': {
'django': { # Logger for Django framework code
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
'myapp': { # Specific logger for your app
'handlers': ['file'],
'level': 'DEBUG',
'propagate': True,
},
'': { # Catchall root logger
'handlers': ['file'],
'level': 'ERROR',
},
},
}