由于 Flask 路由中的错误,在本地开发服务器中查看 Google App Engine Python 回溯

奈奈

我正在使用 Google App Engine 开发 Flask 应用程序,并使用本地开发服务器(即dev_appserver.py在我的本地机器上对其进行测试

当我的应用程序在 app.py 脚本的顶层遇到运行时异常时,我在运行dev_appserver.py. 但是,当在 Flask 路由中遇到异常时,似乎开发服务器正在捕获并处理异常。我在终端输出中只能看到该路由返回 500 响应状态:

INFO     2017-06-20 13:18:31,998 devappserver2.py:116] Skipping SDK update check.
INFO     2017-06-20 13:18:32,025 api_server.py:297] Starting API server at: http://localhost:43843
INFO     2017-06-20 13:18:32,037 dispatcher.py:209] Starting module "default" running at: http://localhost:8080
INFO     2017-06-20 13:18:32,037 admin_server.py:116] Starting admin server at: http://localhost:8000
INFO     2017-06-20 13:18:36,048 module.py:809] default: "GET /cron/batch/basket HTTP/1.1" 500 291

我可以找到回溯的一种方法是传递dev_appserver.py标志--logs_path=sqlite.db,然后AppLogs在包含回溯的 sqlite 文件中查看的内容但这几乎不是一个有用的工作流程。

任何人都知道如何获得在处理 Flask 路由时遇到的异常的回溯?

奈奈

我对这个问题的解决方案是创建一个装饰器,它捕获任何异常,将其回溯打印到标准输出,然后重新引发异常,然后将其添加到我想要调试的任何路由中:

import traceback
import sys

def print_traceback(func):
    """Decorator that prints exception tracebacks to stdout"""
    def wrapper(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except Exception, e:
            print "Exception:"
            print "============================="
            traceback.print_exc(file=sys.stdout)
            print "============================="
            raise e
    return wrapper

@app.route('/some/route')
@print_traceback
def some_route(task):
    pass

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Google App Engine /数据存储区/ Flask / Python应用程序中的内存泄漏

如何在Google App Engine Python服务器上启用CORS?

Google App Engine启动器Python路径

Matplotlib与Google App Engine本地开发服务器

在Flask + Google App Engine上启用SSL

如何在Google App Engine的本地开发服务器上使用Python 3

Google App Engine queue.yaml在开发服务器中不起作用

使用Flask在StackDriver错误报告中未显示Google App Engine错误

简单的Google App Engine任务队列教程?Flask / Python / GAE

Google App Engine标准环境中的gunicorn服务器

Google Cloud Engine中的python flask-restful部署

Numpy在Python3 Google App Flexible Engine中失败

如何使用python 3.5在Google App Engine中打开文件?

将Python Flask应用程序部署到Google App Engine时,没有名为“ flask”的模块

Google App Engine Python 3.7中的多项服务

Django Google App Engine服务器错误500

在Google App Engine中重新部署Flask应用

在Google App Engine中部署Flask应用导致“ gunicorn:错误:未指定应用模块”。

Cloud Build无法构建App Engine Python 3.8应用程序(由于pip错误?)

Google Cloud App Engine Flex Env上的Flask-Socketio服务器

PHP Google App Engine在本地开发服务器上上传文件

Google+登录-服务器端流程-Python-Google App Engine

Google Cloud Datastore和Flask App Engine

使用Google App Engine在python中获取很多网址

在Google App Engine(Python)中,如何增加应用程序服务器的资源?

如何获取本地开发服务器中Google云存储上载文件的公共链接(Google App Engine + JAVA)

在Google App Engine中通过Python查询Google Bigquery

使用Python在Google App Engine中执行Java程序

无法在 Google App Engine 上部署 Flask 应用程序,收到错误“502 Bad Gateway”