Я попытался изменить уровень отладки на DEBUG в Django, потому что хочу добавить некоторые отладочные сообщения в свой код. Кажется, это не имеет никакого эффекта.Django: как установить уровень журнала для INFO или DEBUG
Моя конфигурация регистрации:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'simple': {
'format': '%(levelname)s %(message)s'
},
},
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
'formatter': 'simple'
},
},
'loggers': {
'django.request':{
'handlers': ['console'],
'propagate': False,
'level': 'DEBUG',
},
},
}
Код:
import logging ; logger = logging.getLogger(__name__)
logger.debug("THIS MESSAGE IS NOT SHOWN IN THE LOGS")
logger.warn("THIS ONE IS")
Вывод на консоль:
WARNING:core.handlers:THIS ONE IS
Я также попытался установить DEBUG = False и DEBUG = True в моем файл настроек. Есть идеи?
Edit: Если установить уровень журнала на регистраторе непосредственно, она работает:
import logging ; logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.debug("THIS MESSAGE IS NOT SHOWN IN THE LOGS")
Выход:
DEBUG:core.handlers:THIS MESSAGE IS NOT SHOWN IN THE LOGS
WARNING:core.handlers:THIS ONE IS
Но: Кажется, конфигурационный файл полностью игнорируется. Он печатает оба оператора всегда, даже если я установил обе записи в конфигурации обратно в ERROR. Это правильное поведение, или я все еще что-то пропустил?
Быстрая проверка: 'logger.warn (» Уровень журнала установлен на {0} ". Format (logging.getLevelName (logger.level))) –
ВНИМАНИЕ: core.handlers: Уровень журнала установлен на NOTSET. Итак, это уровень по умолчанию, который ПРЕДУПРЕЖДЕНИЕ, правильно? Почему Django не меняет его в соответствии с моими настройками? – kev
* мигает * Huh. Я ничего не получил. Мне кажется, что вы все делаете правильно. –