Журналы Heroku для проектов Django пропускают ошибки

Я запускаю простой проект Django на Heroku. Он работает, но если я получаю ошибку сервера, это не дает мне никаких подробностей в журналах. Это делает ошибки невероятно трудными.

Теперь я настроил промежуточный сервер, и у него такая же проблема – страницы терпят неудачу, и я не получаю никаких отзывов о том, почему.

$ heroku logs

2012-08-08T13:55:58+00:00 app[web.1]: Development server is running at http://0.0.0.0:59048/ 2012-08-08T13:55:59+00:00 heroku[web.1]: State changed from starting to up 2012-08-08T13:56:01+00:00 heroku[router]: GET [xxx].herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=22ms status=500 bytes=27 2012-08-08T13:56:01+00:00 app[web.1]: [08/Aug/2012 14:56:01] "GET / HTTP/1.1" 500 27 2012-08-08T13:56:02+00:00 heroku[router]: GET [xxx].herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=6ms status=500 bytes=27 2012-08-08T13:56:09+00:00 heroku[router]: GET[xxx].herokuapp.com/admin dyno=web.1 queue=0 wait=0ms service=2ms status=301 bytes=0 2012-08-08T13:56:09+00:00 app[web.1]: [08/Aug/2012 14:56:09] "GET /admin HTTP/1.1" 301 0 2012-08-08T13:56:10+00:00 heroku[router]: GET [xxx].herokuapp.com/admin/ dyno=web.1 queue=0 wait=0ms service=224ms status=500 bytes=27 2012-08-08T13:56:10+00:00 app[web.1]: [08/Aug/2012 14:56:10] "GET /admin/ HTTP/1.1" 500 27 2012-08-08T13:56:10+00:00 heroku[router]: GET [xxx].herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=6ms status=500 bytes=27 

Как вы можете видеть, страницы возвращаются как 500, но я не получаю никакой информации о трассировке стека или аналогичной.

Возможные проблемы могут быть отмечены: «Сервер разработки работает на …» – что это значит и влияет ли на ведение журнала ошибок?

Кроме того, я использую файл шаблона «500.html» для определения пользовательской страницы ошибок 500. Может ли это как-то скрывать ошибки? Это действительно не должно.

Или мне нужно искать в другом месте для журналов с Django на Heroku?

Благодаря!

3 Solutions collect form web for “Журналы Heroku для проектов Django пропускают ошибки”

Похоже, это была просто проблема, вызванная ожиданием того, что Django под Heroku будет работать как Rails. Дурак я.

Для всех, кто страдает этой проблемой при переходе с одного фреймворка / языка на другой:

  • Когда отладка отключена, Django использует стандартный регистратор Python для обработки ошибок в коде.
  • В нижней части settings.py есть настройка по умолчанию, которая отправляет письма администратору сайта, когда есть ошибки. Ницца. Он нуждается в массиве адресов электронной почты в переменной ADMINS в settings.py для работы.
  • Ошибки отправляются по умолчанию в STDERR вместо STDOUT, поэтому они не отображаются в журналах. По-видимому, это можно изменить. Попробуйте здесь, если вы хотите этого поведения:

    http://codeinthehole.com/writing/console-logging-to-stdout-in-django/

Такое поведение задается сервером (например, gunicorn), а не Django или Heroku.

Обычно в командной строке или конфигурации изменяется уровень журнала по умолчанию.

Это можно решить, просто изменив DEBUG в файле settings.py. DEBUG = True

  • Как заставить вращающееся имя с помощью timedRotatingFileHandler python?
  • Модуль протоколирования не печатает в IPython
  • Получение вывода console.log из Chrome с привязками API Selenium Python
  • Печать в STDOUT и файл журнала при удалении цветовых кодов ANSI
  • Записывает ли журнал python каждый журнал?
  • Получение вывода console.log из Firefox с помощью Selenium
  • Определяет, установлен ли корневой журнал на уровень DEBUG в Python?
  • Вход в Python с файлом Config - использование обработчиков, определенных в файле через код
  • Django: как передать индивидуальные настройки на manage.py
  • Корневой регистратор в dictconfig
  • Python - для регистратора «OpenGL.error» не найдено обработчиков
  • Python - лучший язык программирования в мире.