接入 Sentry 实现前端的异常上报是一个常见的做法,用于捕获和监控前端应用中的错误和异常,以便更好地理解和解决生产环境中的问题。以下是如何在常见的前端框架(如 React、Vue 和 Angular)中接入 Sentry 的步骤。
1. 注册并获取 Sentry DSN
- 访问 Sentry 官网 并注册一个账号。
- 创建一个新的项目,并获取项目的 DSN(Data Source Name)。DSN 是你用来配置 Sentry SDK 的唯一标识符。
2. 安装 Sentry SDK
React
-
使用 npm 或 yarn 安装 Sentry SDK:
npm install @sentry/react @sentry/browser # 或者 yarn add @sentry/react @sentry/browser
-
在你的应用入口文件(如
index.js
或App.js
)中初始化 Sentry:import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import * as Sentry from '@sentry/react'; // 使用你的 Sentry DSN 初始化 Sentry Sentry.init({ dsn: 'YOUR_DSN_HERE', // 其他配置选项 }); ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById('root') );
Vue
-
使用 npm 或 yarn 安装 Sentry SDK:
npm install @sentry/vue @sentry/browser # 或者 yarn add @sentry/vue @sentry/browser
-
在你的应用入口文件(如
main.js
)中初始化 Sentry:import Vue from 'vue'; import App from './App.vue'; import * as Sentry from '@sentry/vue'; import * as SentryBrowser from '@sentry/browser'; // 使用你的 Sentry DSN 初始化 Sentry Sentry.init({ dsn: 'YOUR_DSN_HERE', // 其他配置选项 integrations: [ new SentryBrowser.Integrations.Vue({ Vue, attachProps: true, // 附加 Vue 组件的 props 到错误报告中 logErrors: true, // 在控制台记录错误 }), ], }); new Vue({ render: h => h(App), }).$mount('#app');
3. 配置 Sentry(可选)
根据需求,你可以进一步配置 Sentry,例如:
- 设置用户上下文:捕获用户信息(如用户名、ID 等)。
- 捕获额外的面包屑(Breadcrumbs):记录用户在触发错误之前的行为。
- 自定义错误处理:添加额外的信息或条件判断。
Sentry.configureScope((scope) => {
scope.setUser({
id: 'user_id_123',
username: 'user_name_123',
email: '[email protected]',
});
scope.addBreadcrumb({
message: 'User did something',
category: 'user',
level: Sentry.Severity.Info,
});
});
4. 测试并验证
- 部署你的应用。
- 触发一些错误(如故意写一些会导致错误的代码)。
- 检查 Sentry 仪表板,确保错误被正确捕获和记录。
通过这些步骤,你就可以在前端应用中接入 Sentry 并实现异常上报。Sentry 提供了丰富的功能和配置选项,帮助你更好地监控和管理前端应用的错误和异常。