设置哨兵不工作 - 没有发送到哨兵
Setting up Sentry not working - nothing sent to Sentry
我接手了一个使用 python 和 flask 的项目(而且我也是 python/flask 的新手!)。我想向其中添加 Sentry 以捕获发生的任何 errors/exceptions。为了增加复杂性,该项目被分成多个 docker 个容器,这些容器彼此 link。我首先尝试让主 "frontend" 容器开始将错误记录到 Sentry。
我已经阅读了文档,但它只会让我更加困惑。
例如(来自 frontend.py 文件):
app = WebServer(logger, environment)
sentry = Sentry(app, logging=True, level=logging.INFO)
这是在应用程序的前端部分。据我了解,这应该允许 Sentry 捕获任何异常并将其发送出去,但没有任何反应(我做了一个简单的除以零以强制引发异常)。
我确定我可能遗漏了一些东西,但我只是对文档感到困惑。
例如,在日志记录选项中(我一直在考虑可能改用这个选项),它谈到了手动设置客户端。它在谈论什么客户?
我之前已经将 Sentry 设置为在 PHP Laravel 应用程序中工作,完全没有问题,而且操作起来非常非常容易。这种 python 方式让我很困惑。
这就是我最后做的事情:
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 将在其结果中显示 'meaningfulname'。
我接手了一个使用 python 和 flask 的项目(而且我也是 python/flask 的新手!)。我想向其中添加 Sentry 以捕获发生的任何 errors/exceptions。为了增加复杂性,该项目被分成多个 docker 个容器,这些容器彼此 link。我首先尝试让主 "frontend" 容器开始将错误记录到 Sentry。
我已经阅读了文档,但它只会让我更加困惑。
例如(来自 frontend.py 文件):
app = WebServer(logger, environment)
sentry = Sentry(app, logging=True, level=logging.INFO)
这是在应用程序的前端部分。据我了解,这应该允许 Sentry 捕获任何异常并将其发送出去,但没有任何反应(我做了一个简单的除以零以强制引发异常)。
我确定我可能遗漏了一些东西,但我只是对文档感到困惑。
例如,在日志记录选项中(我一直在考虑可能改用这个选项),它谈到了手动设置客户端。它在谈论什么客户?
我之前已经将 Sentry 设置为在 PHP Laravel 应用程序中工作,完全没有问题,而且操作起来非常非常容易。这种 python 方式让我很困惑。
这就是我最后做的事情:
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 将在其结果中显示 'meaningfulname'。