Django的Heroku日志项目缺少错误

dar*_*der 12 python django logging heroku

我在Heroku上运行一个简单的Django项目.它可以工作,但如果我收到服务器错误,它不会在日志中给我任何细节.这使得错误难以处理.

现在我已经设置了一个临时服务器,它有同样的问题 - 页面失败了,我没有得到任何反馈,为什么.

$ heroku日志

...

2012-08-08T13:55:58+00:00 app[web.1]: Development server is running at http://0.0.0.0:59048/
2012-08-08T13:55:59+00:00 heroku[web.1]: State changed from starting to up
2012-08-08T13:56:01+00:00 heroku[router]: GET [xxx].herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=22ms status=500 bytes=27
2012-08-08T13:56:01+00:00 app[web.1]: [08/Aug/2012 14:56:01] "GET / HTTP/1.1" 500 27
2012-08-08T13:56:02+00:00 heroku[router]: GET [xxx].herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=6ms status=500 bytes=27
2012-08-08T13:56:09+00:00 heroku[router]: GET[xxx].herokuapp.com/admin dyno=web.1 queue=0 wait=0ms service=2ms status=301 bytes=0
2012-08-08T13:56:09+00:00 app[web.1]: [08/Aug/2012 14:56:09] "GET /admin HTTP/1.1" 301 0
2012-08-08T13:56:10+00:00 heroku[router]: GET [xxx].herokuapp.com/admin/ dyno=web.1 queue=0 wait=0ms service=224ms status=500 bytes=27
2012-08-08T13:56:10+00:00 app[web.1]: [08/Aug/2012 14:56:10] "GET /admin/ HTTP/1.1" 500 27
2012-08-08T13:56:10+00:00 heroku[router]: GET [xxx].herokuapp.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=6ms status=500 bytes=27
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,页面返回500,但我没有获得任何堆栈跟踪信息或类似信息.

可能的问题可以表示为:'开发服务器正在运行...' - 这是什么意思,它是否影响错误记录?

此外,我正在使用'500.html'模板文件来定义自定义500错误页面.这可能会以某种方式隐藏错误吗?它真的不应该.

或者我是否需要在Heroku上寻找Django的日志?

谢谢!

dar*_*der 11

看起来这只是一个问题引起的,期望Heroku下的Django像Rails一样工作.傻我.

对于从一个框架/语言转移到另一个框架/语言时遇到此问题的其他人:

  • 当调试关闭时,Django使用标准的Python记录器来处理代码中的错误.
  • settings.py底部有一个默认设置,当出现错误时会向网站管理员发送电子邮件.尼斯.它需要在settings.py中的ADMINS变量中使用一组电子邮件地址才能工作.
  • 默认情况下,错误发送到STDERR而不是STDOUT,因此它们不会显示在日志中.这显然可以改变.如果您想要此行为,请尝试此处:

    http://codeinthehole.com/writing/console-logging-to-stdout-in-django/