【问题标题】:Google App Engine dev app server does not display detailed error messageGoogle App Engine 开发应用服务器不显示详细的错误消息
【发布时间】:2012-01-21 10:28:09
【问题描述】:

在本地 (python) 上的 Google App Engine 开发应用服务器上开发并遇到错误时,浏览器将显示如下内容:

服务器错误 该网站在检索 http://localhost:8080/ 时遇到错误。它可能因维护而停机或配置不正确。 以下是一些建议: 稍后重新载入此网页。 HTTP 错误 500(内部服务器错误):服务器尝试完成请求时遇到了意外情况。

有显示详细错误信息的配置吗?

【问题讨论】:

  • 打开 GAE 启动器上的“日志”窗口。

标签: python google-app-engine


【解决方案1】:

--debug 选项不再存在,但尝试从--dev_appserver_log_level debug 开始,例如:

dev_appserver.py $PWD --dev_appserver_log_level debug

【讨论】:

    【解决方案2】:

    这是我所做的,到目前为止它正在工作。

    在您的主应用文件中。

    ...
    import logging
    ...
    
    app = Flask(__name__)
    ...
    
    @app.before_request
    def enable_local_error_handling():
        app.logger.addHandler(logging.StreamHandler())
        app.logger.setLevel(logging.INFO)
    

    【讨论】:

      【解决方案3】:

      您可以使用命令行并使用 --debug 启动开发服务器来获取详细的调试消息。以下是文档: http://code.google.com/appengine/docs/python/tools/devserver.html#Command_Line_Arguments

      您还可以将日志记录添加到您的应用程序以捕获信息: http://code.google.com/appengine/docs/python/runtime.html#Logging

      【讨论】:

      • 在运行本地服务器时,我们会在控制台中收到非常详细的错误消息。
      • @GautamK 如果“控制台本身”是指浏览器窗口,这完全取决于您的应用程序以及它在抛出异常时选择返回的内容。
      • 谢谢,提供的开发服务器方法有效。但是,我只是想知道为什么在将调试设置为 True 时它会正常工作,如下代码所示: app = webapp2.WSGIApplication([('/', MainPage), ('/sign', Guestbook)], debug=是的)在使用 webapp 的旧 GAE SDK Python 2.5 中,如果出现错误,webapp 会将堆栈跟踪打印到浏览器输出。在支持 Python 2.7 和 webapp2 的新 GAE SDK 中,设置 debug=True 应该也能正常工作,但不会向浏览器发送错误。
      • 我也有同样的问题。在 python 2.5 下使用 Google App Engine Launcher 以默认方式启动的 GAE SDK 会在浏览器中显示堆栈跟踪,而在 2.7 版本下,浏览器仅显示 500。堆栈跟踪在日志中可用,但不明白为什么会更改。放在浏览器里会很方便。
      • 这个--debug 选项似乎消失了,我找不到任何其他具有显示堆栈跟踪效果的选项。不过,Alex Cory 的回答对我有用。
      猜你喜欢
      • 2012-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2013-06-04
      • 2018-04-03
      • 2011-10-19
      • 1970-01-01
      相关资源
      最近更新 更多