【问题标题】:Google appengine blobstore debugging谷歌应用引擎 blobstore 调试
【发布时间】:2011-04-18 15:20:53
【问题描述】:

我遇到了 blobstore 上传问题,但由于 gae 处理所有这些问题的方式,实际上找出错误所在给我带来了一些麻烦。我正在使用 django,不幸的是,它非常努力地防止异常在没有格式化的情况下到达用户。看起来上传成功了,数据库中有 __BlobInfo__ 实体,但随后发生了一些事情,导致了 500 响应。

日志是这样写的:

INFO     2010-09-29 03:54:33,236 dev_appserver.py:529] Internal redirection to /img/imup/aglwaGFzZS10d29yDQsSB1Byb2plY3QYAgw
INFO     2010-09-29 03:54:33,654 dev_appserver_blobstore.py:328] Upload handler returned 500
ERROR    2010-09-29 03:54:33,654 dev_appserver_blobstore.py:341] Invalid upload handler response. Only 301, 302 and 303 statuses are permitted and it may not have a content body.
INFO     2010-09-29 03:54:33,736 dev_appserver.py:3275] "POST /_ah/upload/aglwaGFzZS10d29yGwsSFV9fQmxvYlVwbG9hZFNlc3Npb25fXxgPDA HTTP/1.1" 500 -

有没有办法从 SDK 中获取更多有用的调试信息?

【问题讨论】:

    标签: python django google-app-engine blobstore


    【解决方案1】:

    嗯,这就是我现在取得进展的方式。有点恶心:

    try:
        # something that might not work
    except Exception, e:
        return http.httpResponseRedirect('/%s'%repr(e))
    

    然后我可以读取 URL 中出现的错误。

    我希望我能接受其他人(更好)的回答,因为这是一个可怕的 hack,而且一点也不好玩!

    【讨论】:

    • 顺便说一句,作为权宜之计,只需将 catch 子句“logging.exception("Exception occurred while handling blob")”与“raise”放在下一行。
    【解决方案2】:

    您的代码引发的异常应该立即在您粘贴的日志行上方输出 - 向上滚动!如果不是,则您的框架中的某些内容正在捕获异常而不报告它们 - 可能会将它们返回给用户,这在这种情况下用处不大。

    【讨论】:

    • 确实,我正在使用 django。对于这种特殊情况,这使得这非常困难。我很高兴地说我已经解决了当前的问题,但它仍然很烦人。
    • 据我所知,Django 应该默认记录所有异常。
    • 在哪里可以找到该日志,或者如何确保它已启用?
    • 在问题中粘贴日志行的位置相同。如果异常不在此之上,您需要了解 Django 不记录异常的原因;我不是 Django 专家,所以我帮不上忙。
    猜你喜欢
    • 2014-04-04
    • 2012-01-19
    • 1970-01-01
    • 2013-03-28
    • 2023-03-15
    • 2013-08-23
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    相关资源
    最近更新 更多