Я хотел бы выводить отладочные сообщения в моем приложении django в разных точках функции просмотра. Документы для django-debug-toolbar говорят, что он использует сборку в протоколе python, но я не могу найти больше информации, чем это. Я действительно не хочу регистрироваться в файле, но на панели сведений на панели инструментов. Как это работает?
Как использовать Logging на панели инструментов Debug Django?
Ответ 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.