2010-11-23 90 views
1

我正在使用web.py 0.3/apache2/mod_wsgi,並且cgitb模塊似乎無法正常工作(我仍然只是得到'內部服務器錯誤'從web.py和通常的輸出到Apache的error_log)。 web.py安裝指南提出了一種解決方法,它對我不起作用 - 我可能會把它變成工作,但是有什麼更好的(可能是爲web.py或wsgi設計的)我應該使用它?wsgi/web.py在瀏覽器中輸出錯誤輸出

回答

3

設置web.config.debug = True在創建您的應用程序之前。這將啓用調試錯誤,其中包含異常的堆棧跟蹤以及本地值。

+0

據我所知,這是默認設置,您應該在從開發移植到生產時關閉它。 – voodoogiant 2011-02-03 18:44:26

0

在調試apache2和web.py時,通常很容易發現apache錯誤日誌中的錯誤。例如,當您收到內部服務器錯誤時,這意味着您的應用無論何種原因都不會返回任何內容。

在Linux上,我只是看錯誤日誌在一個單獨的終端......根據你的系統

tail -f /var/log/apache2/error_log 

tail -f /var/log/httpd/error_log 

什麼的。如果出現錯誤或錯誤信息或者錯誤信息,即使在瀏覽器中出現內部服務器錯誤,您也會在錯誤日誌中獲得典型的python堆棧跟蹤。

+0

這對於調試尤其有用,因爲您可以將輸出發送到stderr,並且它將顯示在您的error_log中,而不是必須將其正常轉儲到您的瀏覽器窗口並顯示其他所有內容。 – voodoogiant 2011-02-03 18:39:52

0

缺乏cgitb的確讓我放慢了腳步。這爲我做:

嘗試: 輸出+ = TroublesomeScript(ETC)

情況除外: 進口回溯; 輸出+ = str(traceback.format_exc())

如果你喜歡,你可以美化輸出,但是這應該爲你提供調試所需的信息。您也可以輸出sys.exc_info(),但回溯模塊似乎被推薦。