支持python3的werkzeug调试器的独立webob端口,用于在将来的turbogears2中替换weberror

backlash的Python项目详细描述


关于齿隙

“反弹”是一种用于Web应用程序调试的瑞士军刀,它提供:

  • An Interactive In Browser Debugger based on a Werkzeug Debugger fork ported to WebOb
  • Crash reporting by email and on Sentry
  • Slow requests reporting by email and on Sentry.

齿隙是涡轮齿轮2.3版本中Weberror的替代品。

安装

间隙可从PYPI安装:

pip install backlash

应该只对大多数用户有效

调试和控制台

反弹支持在崩溃和实时控制台上调试应用程序, 两者都基于werkzeug调试器,并适合于使用webob。

调试功能由DebuggedApplication中间件提供, 使用此中间件包装应用程序将截获任何异常 并在浏览器中显示回溯和交互式控制台。

/__console__path中也始终可以使用交互式控制台。

上下文注入器

DebuggedApplication中间件还可以提供一个或多个 context injectors,这些是简单的python函数,在 引发异常以检索要存储的上下文并在 调试。

上下文注入器必须返回一个将合并到当前 请求上下文,请求上下文本身将在调试器中可用 作为ctx对象。

例如,turbogears使用这个特性来提供一些对象 在执行过程中可用的,如当前请求。

示例

TurboGears使用调试应用中间件的方式如下:

def _turbogears_backlash_context(environ):
    tgl = environ.get('tg.locals')
    return {'request':getattr(tgl, 'request', None)}

app = backlash.DebuggedApplication(app, context_injectors=[_turbogears_backlash_context])

异常跟踪

TraceErrorsMiddleware提供了一个wsgi中间件,可以拦截任何异常 在执行期间引发,检索回溯对象并将其提供给一个或多个 reporters记录错误。

默认情况下,EmailReporterSentryReporter用于发送错误 通过电子邮件和岗哨报告。

EmailReporter支持大多数选项weberror errormiddleware来提供 有点向后兼容,使快速转换成为可能。

虽然使用python日志smtphandler可以轻松复制此函数,但是 traceerRorsMiddleware明确用于Web应用程序崩溃报告 它的好处是能够提供更完整的信息并保持清晰 以及管理错误的独立过程。

示例

TurboGears使用TraceerRorsMiddle软件的方式如下:

from backlash.trace_errors import EmailReporter

def _turbogears_backlash_context(environ):
   tgl = environ.get('tg.locals')
   return {'request':getattr(tgl, 'request', None)}

app = backlash.TraceErrorsMiddleware(app, [EmailReporter(**errorware)],
                                     context_injectors=[_turbogears_backlash_context])

慢速请求跟踪

TraceSlowRequestsMiddleware提供了跟踪请求的wsgi中间件 执行时间和报告需要超过指定间隔才能完成的请求 (默认为25秒)。

也可以排除以指定字符串开头的路径列表 避免报告长轮询连接或其他类型的请求 预计有一个长寿的产卵。

示例

TurboGears使用TraceSlowrequestsMiddle软件的方式如下:

from backlash.trace_errors import EmailReporter

def _turbogears_backlash_context(environ):
   tgl = environ.get('tg.locals')
   return {'request':getattr(tgl, 'request', None)}

app = backlash.TraceSlowRequestsMiddleware(app, [EmailReporter(**errorware)],
                                           interval=25, exclude_paths=None,
                                           context_injectors=[_turbogears_backlash_context])

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在数据库中插入行时自动发送电子邮件?   从进程输出读取的Java问题   java质疑StyledDocument和JTextPane之间的关系,以及接口的正确使用   java错误getPlayer(args[0]);   java如何使Spring引导在重新打包的WAR中包含清单文件?   Java中的除法与模   java使用2d数组和JfreeChart制作散点图   java扩展SonarQube FindBugs插件和自定义FindBugs插件   javaspring:hibernate+ehcache   具有不正确的equals和HashCode实现的java HashMap   java Jaspersoft报告网。旧金山。jasperreports。发动机例外:net。旧金山。jasperreports。发动机填满JRepressionEvalException:计算表达式时出错   java如果输入与其变量不匹配,如何添加错误   在java中使用简单数组[]实现队列   无法启动上下文路径/hsx上的java FAIL应用程序