背景
我有一个包含我的Django 1.6应用程序的OpenShift Python 2.7设备。我用django-openshift-quickstart.git作为我自己项目的起点,效果很好。
但是,如果我的代码中有语法错误或其他一些异常,我无法找到它。我可以通过以下方式执行日志尾部:
rhc tail -a appname
但是,这只能告诉我发生了500错误。除了以下情况,我从未看到任何例外或细节:
10.137.24.60, x.x.x.x - - [13/Nov/2014:17:12:27 -0500] "GET /snapper/snapshots HTTP/1.1" 500 27 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36"
客户端网络浏览器报告:
Server Error (500)
我在settings.py中打开了DEBUG设置(DEBUG = True),但没有任何区别。我仍然在日志或浏览器中看到没有例外。
我相信容器(装备)正在使用haproxy + apache + mod_wsgi + python2.7。
我非常乐意开始将Django异常报告给我的浏览器。
问题:
当DEBUG设置为True时,为什么我在OpenShift下的浏览器(或日志文件)中看不到Django异常?
我意识到这看起来与现有问题How to debug Django exceptions in OpenShift applications类似,但“rhc tail -a”只显示500条错误行 - 我仍然看不到Django异常。
AtDhVaAnNkCsE
道格
答案 0 :(得分:1)
我不知道zilch关于OpenShift,但是
现在我强烈建议您不要在生产服务器上设置DEBUG=True
- 使用正确配置的记录器和SMTP服务器,您应该通过邮件获取所有未处理的异常。
最后一点:如果你有类似语法错误之类的东西,你甚至可能无法达到Django可以进行任何记录的程度。在这种情况下,您可以获得的信息取决于服务器进程本身。但是你没有理由在生产服务器上得到一个SyntaxError,因为你不应该在生产中编辑代码......
答案 1 :(得分:0)
令我恐惧的是......事实证明我没有设置DEBUG = True!我可以发誓我曾经在settings.py中设置过它,但我的提交历史强烈暗示我错了。
在我的wsgi / settings.py中使用DEBUG = True我现在可以在OpenShift上调试我的应用程序了。
为噪音道歉。
道格