我接手了一个使用python和flask的项目(我也是python / flask的新手!)。我想添加Sentry来捕获发生的任何错误/异常。为了增加复杂性,项目被拆分为多个相互链接的docker容器。我首先尝试让主要的“前端”容器开始将错误记录到Sentry。
我已经阅读了文档,但这只会让我更加困惑。
例如(来自frontend.py文件):
app = WebServer(logger, environment)
sentry = Sentry(app, logging=True, level=logging.INFO)
这是在应用程序的前端部分。根据我的理解,这应该允许Sentry捕获任何异常并将其发送出去,但没有任何反应(我做了一个简单的除零以强制异常)。
我确信我可能遗漏了一些东西,但我只是对文档感到困惑。
例如,在日志记录选项中(我一直在考虑使用此选项),它讨论了手动设置客户端。它在谈论什么客户?
我已经将Sentry设置为在PHP Laravel应用程序中工作,之前完全没有任何问题,而且非常容易。这种蟒蛇的方式让我感到困惑。
答案 0 :(得分:0)
所以这就是我最终做的事情:
from raven import Client
from raven.conf import setup_logging
from raven.handlers.logging import SentryHandler
sentry_dsn = 'MY DSN FROM SENTRY'
sentry_client = Client(dsn=sentry_dsn, site='MYAPP')
handler = SentryHandler(sentry_client)
handler.setLevel(logging.ERROR)
setup_loggin(handler)
所以设置这种方式我现在发现在我的应用程序中我使用记录器的任何地方,哨兵将把它拿起并发送出去。
另外,为了让我知道它来自哪个部分,我创建了一个具有有意义名称的记录器:例如logger = logging.getLogger('meaningfulname')
然后Sentry将显示'有意义的名称'在其结果中。