Как я могу заставить Django 1.0 писать ошибки all на консоль или файл журнала при запуске runerver в режиме отладки?
Я пробовал использовать класс промежуточного программного обеспечения с функцией process_exception, как описано в принятом ответе на этот вопрос:
Как регистрировать ошибки сервера на сайтах django
Функция process_exception вызывается для некоторых исключений (например: assert (False) в views.py), но process_exception не вызывается для других ошибок, таких как ImportErrors (например: import thisclassdoesnotexist в urs.py). Я новичок в Django/Python. Это из-за какого-то различия между ошибками времени выполнения и времени компиляции? Но тогда я ожидал бы, что runerver будет жаловаться, если это была ошибка времени компиляции, и это не так.
Я наблюдал фантастическую презентацию Саймона Уиллисона о отладке Django (http://simonwillison.net/2008/May/22/debugging/), но я не видел вариант, который будет работать хорошо для меня.
В случае, если это уместно, я пишу приложение Facebook, а Facebook маскирует ошибки HTTP 500 с их собственным сообщением, а не демонстрирует удивительно информативную 500-страничную Django. Поэтому мне нужен способ для всех типов ошибок, которые должны быть записаны в консоль или файл.
Изменить: Я предполагаю, что мое ожидание заключается в том, что если Django может вернуть страницу с ошибкой 500 с большим количеством деталей, когда у меня плохой импорт (ImportError) в urls.py, он должен иметь возможность писать те же детали к консоли или файлу без необходимости добавлять дополнительную обработку исключений в код. Я никогда не видел обработку исключений вокруг операторов импорта.
Спасибо, Джефф