В настоящее время я разрабатываю приложение на основе flask
. Он работает с мелким нерестом сервера вручную, используя app.run()
. Я попытался запустить его через mod_wsgi
сейчас. Как ни странно, я получаю ошибку 500 и ничего в журналах. Я немного исследовал, и вот мои выводы.
- Вставка строки типа
print >>sys.stderr, "hello"
работает так, как ожидалось. Сообщение появляется в журнале ошибок. - При вызове метода без использования шаблона он работает отлично. Ошибка 500.
- Использование простого шаблона также отлично работает.
- НО, как только я запускаю доступ к базе данных внутри шаблона (например, цикл по запросу), я получаю сообщение об ошибке.
Моя кишка говорит мне, что это SQLAlchemy, которая испускает ошибку, и, может быть, некоторые настройки протоколирования заставляют журнал отбрасываться в какой-то момент приложения.
Кроме того, для тестирования я использую SQLite. Это, насколько я помню, можно получить только из одного потока. Поэтому, если mod_wsgi
порождает больше потоков, это может сломать приложение.
Я немного в растерянности, потому что он только ломается за mod_wsgi
, что также, похоже, проглотит мои ошибки. Что я могу сделать, чтобы ошибки попадали в apache error_log?
Для справки, код можно увидеть в этом github permalink.