Spawn werkzeug交互式控制台与堆栈跟踪从框架

时间:2013-09-25 16:09:44

标签: python web-services exception-handling signals werkzeug

我知道在异常提升时可以在werkzeug中生成交互式控制台。这产生了一个带有堆栈跟踪的交互式控制台,这正是我所需要的。问题的环境是我希望能够在SIGUSR2信号时产生交互式控制台来调试可能导致我们的大量qa代码在执行期间挂起的原因。

对于较小的项目,将引发的异常传播到顶层并处理其中的webservice的启动可能就足够了,只需在其中一条路由中重新引用相同的错误,即可通过堆栈跟踪启动交互式控制台。

然而,这对我来说不是一个选项,所以我的问题是:无论如何都要向StackgedApplication提供堆栈框架或从堆栈框架构造一个Exception(不会丢失上下文和堆栈跟踪?

到目前为止,我已经摆弄 1

def handler(signum, frame):
    app = DebuggedApplication(application, evalex=True)
    run_simple('', 9998, app, use_debugger=True)

2 :         @ Request.application         def申请(请求):             提高

    def handler(signum, frame):
        raise Exception('user requested interactive console')

    def main():
        try:
            signal.signal(signal.SIGUSR2, handler)
            ... some code kicking of tests ...
        except:
            run_simple('', 9998, application, use_debugger=True)

1 仅启动localhost:9998 / console上的交互式shell(例如,在终端中仅键入python)。并且 2 是不可能的,因为我无法将异常渗透到最高级别(没有重大的重构),并且我不想在多个地方处理此问题。有什么想法吗?

由于

0 个答案:

没有答案