为什么我在OpenShift下的浏览器中看不到Django异常?

时间:2014-11-13 10:26:11

标签: python django openshift

背景

我有一个包含我的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

道格

2 个答案:

答案 0 :(得分:1)

我不知道zilch关于OpenShift,但是

  1. 您可能需要配置记录器(https://docs.djangoproject.com/en/1.6/topics/logging/#configuring-logging)和
  2. 当您对设置进行一些更改时,必须重新启动wsgi进程。
  3. 现在我强烈建议您不要在生产服务器上设置DEBUG=True - 使用正确配置的记录器和SMTP服务器,您应该通过邮件获取所有未处理的异常。

    最后一点:如果你有类似语法错误之类的东西,你甚至可能无法达到Django可以进行任何记录的程度。在这种情况下,您可以获得的信息取决于服务器进程本身。但是你没有理由在生产服务器上得到一个SyntaxError,因为你不应该在生产中编辑代码......

答案 1 :(得分:0)

令我恐惧的是......事实证明我没有设置DEBUG = True!我可以发誓我曾经在settings.py中设置过它,但我的提交历史强烈暗示我错了。

在我的wsgi / settings.py中使用DEBUG = True我现在可以在OpenShift上调试我的应用程序了。

为噪音道歉。

道格