Подтвердить что ты не робот

Как использовать Logging на панели инструментов Debug Django?

Я хотел бы выводить отладочные сообщения в моем приложении django в разных точках функции просмотра. Документы для django-debug-toolbar говорят, что он использует сборку в протоколе python, но я не могу найти больше информации, чем это. Я действительно не хочу регистрироваться в файле, но на панели сведений на панели инструментов. Как это работает?

4b9b3361

Ответ 1

Вы просто используете методы ведения журнала, а DjDT будет перехватывать и отображать их в панели ведения журнала.

import logging

logging.debug('Debug Message')

if some_error:
   logging.error('Error Message')

Ответ 2

Вход в корневой журнал, как указано в @jonwd7, обычно не рекомендуется. Обычно я следую этой схеме:

import logging
logger = logging.getLogger(__name__)
del logging # To prevent accidentally using it

...

logger.debug("Some message")

Это позволяет вам иметь гораздо более тонкий контроль над тем, какие сообщения ведения журнала выполняют и не отображают. К сожалению, использование этого метода останавливает django debug toolbar от захвата любых сообщений журнала, если вы не укажете конкретную конфигурацию ведения журнала. Здесь самый простой из них:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'incremental': True,
    'root': {
        'level': 'DEBUG',
    },
}

Настройки "incremental" и "disable_existing_loggers" важны, поэтому вы не отключите обработчик панели инструментов, прикрепленной к корневому журналу. Все, что вам нужно сделать, - установить лог-уровень корневого регистратора на "DEBUG". Вы также можете использовать запись "loggers" для установки уровней для определенных регистраторов. Просто опустите раздел "Обработчики" и установите "распространять": True, чтобы они были захвачены обработчиком DjDT.