在我们开发完成后,会有一系列上线之前的测试,比如,先测pre,再测beta,目的就是以确保项目能在生产环境上没有事故。
但对于每一个项目,我们都没办法保证代码零 bug、零报错,即便是经历过几轮测试,也永远无法做到 100% 覆盖,用户也不会总是按照我们所预期的进行操作,在上线后也会出现一些预料不到的问题。当生产环境中产生了一个 bug 时,如何做到迅速报警,找到问题原因,修复后又如何在线上验证。因此就需要:前端错误日志监控。
跟踪运行时错误 如果在组件渲染时出现运行错误,错误将会被传递至全局 Vue.config.errorHandler 配置函数 (如果已设置)。利用这个钩子函数来配合错误跟踪服务是个不错的主意。比如 Sentry,它为 Vue 提供了官方集成。
window.onerror = (msg, url, line, col, err) => {
console.log(err)
}
window.addEventListener('unhandledrejection', function(err) {
console.log(err)
})
Sentry.init({
dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",
debug: true,
});
常用选项
常用功能
import * as Sentry from '@sentry/browser';
interface Sdk {
dsn: string;
environment?: string;
debug?: boolean; // 根据需要自行添加参数类型
}
export function initSdk(sdkConfig: Sdk) {
Sentry.init(sdkConfig);
}
export function setErrLog(errLevel: string, errMsg: string) {
Sentry.withScope((scope: any) => {
scope.setLevel(errLevel);
Sentry.captureException(errMsg);
});
}