Найти - Пользователи
Полная версия: mod_wsgi: вывести traceback
Начало » Web » mod_wsgi: вывести traceback
1
axe
mod_wsgi при возникновении ошибки пишет “Internal Server Error”
а ошибки записывает в /var/log/apach2/error.log

можно ли сделать, чтобы ошибки выводились на странице?
slav0nic
включить дебаг режим приложения, а вообще завист от того на чём конкретно вы пишите…
axe
python-скрипт, который выполняется под mod_wsgi из-под apache.
без фреймвёрков.

как включить дебаг режим?
axe
Спасибо, Daevaorn за ответ в теме mod_python vs mod_wsgi, особенно за ссылку http://code.google.com/p/modwsgi/wiki/DebuggingTechniques

Итого, чтобы вывести ошибки скрипта, запускаемого под mod_wsgi, в браузер:
1) устанавливаем python-paste
2) В apache2.conf правим блок <IfModule mpm_prefork_module>
выставляем:
StartServers 1
ServerLimit 1
3) перегружаем apache
4) в скрипт добавляем:
from paste.evalexception.middleware import EvalException
application = EvalException(application)
где application - callable объект, запускающий WSGI приложение.
axe
    StartServers          1
ServerLimit 1
это накладывает ограничения на работу сервера, потому как апач при перезапуске ругается:
WARNING: MaxClients of 150 exceeds ServerLimit value of 1 servers,
lowering MaxClients to 1.
Александр Кошелев
Вы вообще не с того бока подходите к проблеме. Для разработки можете вообще от апача отказаться и использовать pure-python WSGI сервер. Апач монстр, который не нужен.
axe
на соседнем форуме подсказали посмотреть http://pypi.python.org/pypi/wsgilog/

как оказалось, довольно приятная вещь

после установки модуля, к коду надо добавить только:
from wsgilog import log
@log(tohtml=True, tostream=True, toprint=True)
def application(....
и можно просматривать ошибки в браузере
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB