面包屑

了解 Sentry 如何创建在问题发生之前的一系列事件(面包屑)轨迹。

Sentry 使用 面包屑 来创建在问题发生之前的一系列事件轨迹。这些事件非常类似于传统的日志,但可以记录更丰富的结构化数据。

本页面提供了手动记录和自定义面包屑的概述。了解更多关于 问题详情 页面上显示的信息以及如何通过 使用面包屑 快速解决问题。

每当发生有趣的事情时,您可以手动添加面包屑。例如,当用户进行身份验证或发生其他状态变化时,您可能会手动记录一个面包屑。

首先,像往常一样导入 SDK:

Copied
import * as Sentry from "@sentry/browser";

手动记录一个面包屑:

Copied
Sentry.addBreadcrumb({
  category: "auth",
  message: "Authenticated user " + user.email,
  level: "info",
});

可用的面包屑键包括 typecategorymessageleveltimestamp(许多 SDK 会自动为您设置此值),以及 data,这是放置任何您希望面包屑包含的额外信息的地方。使用这六个键之外的键不会导致错误,但在 Sentry 处理事件时这些数据会被丢弃。

您可以选择以下面包屑日志级别:"fatal""critical""error""warning""log""info""debug"

SDK 和其关联的集成会自动记录许多类型的面包屑。例如,浏览器 JavaScript SDK 会自动记录 DOM 元素上的点击和按键事件、XHR/fetch 请求、控制台 API 调用以及所有位置变化。

SDK 允许您通过 beforeBreadcrumb 钩子来自定义面包屑。

首先,像往常一样导入 SDK:

Copied
import * as Sentry from "@sentry/browser";

此钩子接收一个已组装的面包屑,在某些 SDK 中还可能接收一个可选的提示。该函数可以修改面包屑或通过返回 null 来决定完全丢弃它:

Copied
Sentry.init({
  // ...
  beforeBreadcrumb(breadcrumb, hint) {
    return breadcrumb.category === "ui.click" ? null : breadcrumb;
  },
});

有关提示的更多信息,请参阅 过滤事件