Как регистрировать предупреждения Python в файле журнала Django?

У меня есть приложение Django, которое я переношу с v1.8 на v1.10. В процессе выполнения этой работы я запускал свое приложение через:

python -Wall manage.py runserver

Это приводит к появлению нескольких предупреждений на Python в моей консоли. Я бы хотел, чтобы эти предупреждения отображались в моем журнале приложений Django, поэтому я могу проверить их позже. Я думал, что обработчик журнала моего приложения поймает эти предупреждения, но это не так. Обработчик журнала выглядит следующим образом (как взято из settings.py):

 LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", 'datefmt': "%d/%b/%Y %H:%M:%S" }, 'simple': { 'format': '%(levelname)s %(message)s' }, }, 'handlers': { 'file': { 'level': 'WARNING', 'class': 'logging.FileHandler', 'filename': 'myapp.log', 'formatter': 'verbose' }, }, 'loggers': { 'django': { 'handlers': ['file'], 'propagate': True, 'level': 'WARNING', }, 'myapp': { 'handlers': ['file'], 'level': 'WARNING', }, } } 

Как я могу захватить предупреждения Python (с -Wall ) в моем журнале Django для изучения позже?

One Solution collect form web for “Как регистрировать предупреждения Python в файле журнала Django?”

Предупреждения, отображаемые в python -Wall manage.py <command> , генерируются с использованием модуля предупреждений. В документации модуля протокола Python2.7 у них есть раздел, показывающий, как интегрировать сообщения из модуля предупреждений в журнал.

Добавьте их в свой файл настроек.

 import logging logging.captureWarnings(True) LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { 'verbose': { 'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", 'datefmt': "%d/%b/%Y %H:%M:%S" }, 'simple': { 'format': '%(levelname)s %(message)s' }, }, 'handlers': { 'file': { 'level': 'WARNING', 'class': 'logging.FileHandler', 'filename': 'myapp.log', 'formatter': 'verbose' }, }, 'loggers': { 'django': { 'handlers': ['file'], 'propagate': True, 'level': 'WARNING', }, 'myapp': { 'handlers': ['file'], 'level': 'WARNING', }, 'py.warnings': { 'handlers': ['file'], 'level': 'WARNING', 'propagate': True } } } 

После его добавления попробуйте запустить любую команду manage.py и вы увидите предупреждения, написанные в файле myapp.log .

Эта строка инструктирует вести журнал для записи предупреждений py.warnings:

  logging.captureWarnings(True) 

Это инструктирует вести журнал для маршрутизации (в этом примере к обработчику файла ) предупреждений из журнала py.warnings:

  'py.warnings': { 'handlers': ['file'], 'level': 'WARNING', 'propagate': True } 
  • Как заставить Django подключаться к Oracle с использованием имени службы
  • Формы django получают ценность из файлов cookie
  • PIL - libjpeg.so.8: невозможно открыть файл общего объекта: такой файл или каталог отсутствует
  • Преобразование объекта StringIO в Django ImageFile
  • получить ограничительную рамку объекта многопольного геодъянго
  • matplotlib matshow labels
  • django rest framework xml специальный символ
  • Как мигрировать с юга при использовании «через» для поля ManyToMany?
  •  
    Interesting Posts for Van-Lav

    Как извлечь белую область в изображение

    Почему перечисление выполняется медленнее, если не указывать ключевое слово start?

    Как определить пользовательскую магию в jupyter?

    Как закодировать длинный в Base64 в Python?

    Как использовать наборы в Python для поиска членства в списке?

    Извлечение содержимого двоичного файла с использованием Javascript, base64 кодирует его и реверсирует его с помощью Python

    Генерация спиралей NXN

    Случайно вставляйте значения NA в рамку данных pandas

    Как подключиться к базе данных MS Access 97 (с рабочей группой mdw), используя pyodbc

    преобразование текстового файла в html-файл с помощью python

    Исключение исключения DoNotExist в пользовательском менеджере в Django

    Вычислительная функция эйлеров

    PyQt + ярлык для запуска кнопки

    json.loads не работает с двоичным JSON, отправленным AngularJS в Python

    Разделить список на несколько списков на основе значений элементов

    Python - лучший язык программирования в мире.