Heroku 应用程序崩溃或出现错误时无回溯

Heroku 应用程序崩溃或出现错误时无回溯,heroku,flask,gunicorn,error-logging,Heroku,Flask,Gunicorn,Error Logging,我有一个小的Python web应用程序,我使用它进行设置。一切似乎都运行顺利,但当程序崩溃或遇到错误时,我不会收到回溯或错误消息。我正在使用 heroku logs --tail 实时查看服务器日志 例如,我在代码中引入了“列表索引超出范围”错误: thing = [1, 2, 3] print thing[4] 我肯定是在使用这段代码,因为我在前一行中向控制台记录了一条消息。但是在Heroku日志中,我看到了我的日志消息,然后什么都没有。没有错误或故障的迹象。如何查看日志?我应该换个地方

我有一个小的Python web应用程序,我使用它进行设置。一切似乎都运行顺利,但当程序崩溃或遇到错误时,我不会收到回溯或错误消息。我正在使用

heroku logs --tail
实时查看服务器日志

例如,我在代码中引入了“列表索引超出范围”错误:

thing = [1, 2, 3]
print thing[4]
我肯定是在使用这段代码,因为我在前一行中向控制台记录了一条消息。但是在Heroku日志中,我看到了我的日志消息,然后什么都没有。没有错误或故障的迹象。如何查看日志?我应该换个地方看吗

如果我在Python 2.7.6交互式解释器中运行相同的代码,我会得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
索引器:列表索引超出范围

Zev,下面是一个简单的Flask应用程序,它将堆栈跟踪转储到Heroku日志中:


希望你能找出你的应用和这个有什么不同。我在设置标准记录器时所付出的努力似乎没有任何区别,因此我不太确定是什么原因阻止了你的应用程序对异常大声抱怨。我使用Gunicorn作为我的WSGI服务器,但这似乎也没有什么区别。

你是说必须将日志记录配置为获取堆栈跟踪的先决条件吗?默认设置是静默失败吗?我所要做的就是
app.debug=True
。我没有看到我看过的其他地方。谢谢@泽夫:是的,那一个也抓住了我。正确的答案确实是
app.debug=True
。顺便说一句,你可以回答你自己的问题,当人们投票给你的时候,你仍然可以得到分数。。。你甚至可以接受你自己的答案,如果它更好的话(如本例)。@Zev另一种选择(如果你想在这里给jwatson一些信任,因为他确实很有帮助)是建议对他的答案进行编辑,并添加你的
app.debug=True
注释。如果被拒绝,不要重复,否则你会收到版主的回复。(我希望如此,在这种情况下,只需显示您以前的拒绝信息…叹气)