通过 Raven 将用户信息传递给 Sentry

Passing User Information To Sentry through Raven

我在 React 应用程序上设置了 Sentry 错误跟踪。我使用 React router 4 并在该级别配置 Raven,这会捕获所有抛出的异常并将它们报告给 Sentry,这正是我想要的。该代码块如下所示:

Raven.config('RAVEN_SPECIFIC_KEY', {
  user: Raven._globalContext
}).install()

但是,我还希望错误报告包含引发错误的用户的电子邮件和数据库 ID。为了实现这一点,我在一个人使用如下代码块登录时设置 Raven 用户信息:

Raven.setUserContext({
  id: getState().currentUser.id,
  email: getState().currentUser.email
});

如您所见,现在我有一个用户标签,我将其设置为 Raven._globalContext - 这有时会传递适当的信息。我知道像那样通过 Raven 对象 属性 访问数据是不对的,但我不确定如何设置 Raven 选项以始终传递登录时收集的用户信息。我觉得我遗漏了一些明显的东西,但是停靠栏似乎都与在抛出特定异常时传递信息有关,我想在其中配置它以便在抛出任何错误时传递用户信息。

如果您使用 setUserContext,则不必在主配置中指定用户。这就是它的用途,让您可以设置当前登录的用户 您已经初始化 Raven 之后。因此,只需调用 setUserContext,它就应该使用该用户信息回填所有错误报告。您应该能够从配置对象中删除用户 属性。