繁体   English   中英

如何在金字塔中为友好的错误页面配置异常视图,但仍将错误传递给记录器?

[英]How can I configure an exception view in Pyramid for friendly error pages, but still pass errors through to a logger?

我正在尝试为我当前的Web应用程序设置Sentry 可以将其配置为充当记录器

但是,我有一个异常视图,如下所示:

@view_config(context=Exception,
             renderer='hitchedup:templates/errors/500.html')
def error_view(exc, request):
    """Display a friendly error message"""
    return {}

这个想法是,只要站点上发生任何异常,我都可以向用户传递友好的消息。

但是,如何仍将错误传递给记录器? 现在,“异常”视图捕获了所有异常,但是它们从未到达记录器。

我尝试在Exception视图中引发并捕获内联的exc ,然后直接通过客户端将其发送给Sentry,但是如果我捕获到最初引发的异常,我将无法获得完整的堆栈跟踪信息。

如何获得友好的500页并且仍然具有良好的日志记录和错误报告?

裸露raise关键字是票。

无需使用日志记录,而是在带有友好消息的视图中捕获Exception。 然后,使用不带参数的raise ,这将引发原始异常。 捕获异常,然后使用Sentry客户端捕获该异常并将其传递。

最终视图如下所示:

from raven.base import Client
from pyramid.view import view_config


@view_config(context=Exception,
             renderer='hitchedup:templates/errors/500.html')
def error(context, request):
    """Display an error message and record it in Sentry."""
    client = Client()
    try:
        raise
    except Exception:
        client.captureException()
    return {}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM