面包屑
了解 Sentry 如何创建在问题发生之前的一系列事件(面包屑)的轨迹。
Sentry 使用 面包屑 来创建在问题发生之前的一系列事件的轨迹。这些事件非常类似于传统日志,但可以记录更丰富的结构化数据。
本页面提供了手动记录和自定义面包屑的概述。了解更多关于 问题详情 页面上显示的信息以及如何过滤面包屑以快速解决问题,请参阅 使用面包屑。
了解 SDK 使用
想要修改面包屑界面的开发者可以在我们的 面包屑接口开发文档 中了解更多。
你可以在任何时候手动添加面包屑,当某些有趣的事情发生时。例如,如果用户进行了身份验证或发生了其他状态变化,你可以手动记录一个面包屑。
首先需要像往常一样导入 SDK:
Copied
import * as Sentry from "@sentry/browser";
手动记录一个面包屑:
Copied
Sentry.addBreadcrumb({
category: "auth",
message: "Authenticated user " + user.email,
level: "info",
});
可用的面包屑键包括 type
、category
、message
、level
、timestamp
(许多 SDK 会自动为你设置此值),以及 data
,这是放置任何你想让面包屑包含的额外信息的地方。使用这六个键之外的键不会导致错误,但在 Sentry 处理事件时这些数据将被丢弃。
你可以选择以下面包屑日志级别:"fatal"
、"critical"
、"error"
、"warning"
、"log"
、"info"
和 "debug"
。
React Native SDK 使用原生的 Android 和 iOS SDK 自动捕获面包屑:
React Native SDK 可以捕获更多类型的面包屑:
- 对于交互面包屑,使用
Sentry.wrap
方法包装你的根组件。 - 对于导航面包屑,使用其中一个 SDK 的导航集成。
HTTP
请求默认包含在面包屑中。- 要跟踪 Redux 操作和最新的 store 状态,使用
Sentry.createReduxEnhancer
。
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;
},
});
有关提示的更多信息,请参阅 过滤事件。