我已经接手了一个使用python和烧瓶的项目(我对python/烧瓶也很陌生!)我想在它中添加Sentry来捕获发生的任何错误/异常。为了增加复杂性,项目被分割成多个相互链接的码头容器。首先,我试图获得主要的“前端”容器,以便开始记录Sentry的错误。
我读过这些文档,但这只会让我更加困惑。
例如(来自frontend.py文件):
app = WebServer(logger, environment)
sentry = Sentry(app, logging=True, level=logging.INFO)这是应用程序的前端部分。据我所知,这应该允许Sentry捕获任何异常并将其发送出去,但是什么都不会发生(我做了一个简单的零除法来强制异常)。
我确信我可能遗漏了什么东西,但我只是对文档感到困惑。
例如,在日志记录选项(我一直在考虑可能使用此选项)中,它讨论手动设置客户机。这是在说什么客户?
我以前在PHP Laravel应用程序中设置了Sentry,没有任何问题,而且非常容易做到。这条蟒蛇的方式把我搞糊涂了。
发布于 2018-06-18 05:07:26
所以这就是我最后要做的
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将在其结果中显示“有意义的名称”。
https://stackoverflow.com/questions/50831205
复制相似问题