当前位置: 首页 > news >正文

vue配合webpack使用sentry对错误日志监控

1.在sentry官网创建一个sentry账号,填写相关信息点击‘继续’按钮

2.新建项目:(注:vue在Brower下)

3.继续下一步,到Send an event from your application 这一步这是sentry已经生成DSN,点击最下面的按钮

4.安装插件

cnpm i raven-js -S

使用

因为我们的项目分为开发、测试和生产环境,在build下全局配置三个环境的地址;使用时候要进行区分

在main.js下

引入
import Raven from 'raven-js';
import RavenVue from 'raven-js/plugins/vue';
复制代码

注:env.name是全局配置的三个环境的环境名称


const sentryDSN = env.name == 'testing' ? 'test' : 'prod';
Raven.config('https:/XXXXXXXXXXXXXXXXXX@sentry.io/XXXXXXXXX',//对应生成的DSN
    sentryDSN,
    {
        environment: env.name
    },
    {
        release:'production@1.1.0'//指定版本后,每次上报的异常就会分类到该版本下
    }
    )
    .addPlugin(RavenVue, Vue)
	.install()
	// 注意,一定记得区分开发环境,否则开发环境的错误也会被提交到sntry去,并且本地是不会显示错误信息的    
	if(env.name !== 'development' ){
		Vue.config.errorHandler = function(err, vm, info) {
			Raven.captureException(err)
		}
	}
复制代码

5.上传 SourceMaps 对错误进行定位

可以参考[sentry Generating Source Maps 文档,详细了解各类框架如何产生SourceMaps; 项目中我用的是webpack打包,我使用的是Sentry Webpack Plugin 配合Webpack完成构建时上传SourceMaps

1).获取API Token

先点击右下角的API,在点击Create New Token; 确保勾选projectwrite,然后在点击Create Token

2).安装sentry-webpack-plugin插件

npm install @sentry/webpack-plugin @sentry/cli --dev-save

在项目的根目录下创建一个文件.sentryclirc并配置

[defaults]
url=https://sentry.io/
org=组织名称
project=项目名称

[auth]
token=你的sentry账号下生成的API Token
复制代码
创建Release,
sentry-cli releases -o 组织 -p 项目 new production@1.1.0
复制代码

3).更新webpack.prod.conf.js

const SentryCliPlugin = require('@sentry/webpack-plugin')
在plugins:[]里面加入此代码:
new SentryCliPlugin ({
      release: "production@1.1.0",//版本号
      include: path.join(__dirname,'../dist/static/js/'), //需要上传到sentry服务器的资源目录,会自动匹配js 以及map文件
      ignore: ['node_modules', 'webpack.config.js'], //忽略文件目录,当然我们在inlcude中制定了文件路径,这个忽略目录可以不加
      configFile :'.sentryclirc',  
      urlPrefix : "~/static/js"    //  线上对应的url资源的相对路径 比如我的域名是 http://XXX  .com/,静态资源都在 static文件夹里面,
    }),
复制代码

Sourmap 上传后的错误效果

参考文章

vue中如何使用sentry对错误日志进行监控

转载于:https://juejin.im/post/5cd133696fb9a032086de3a4

相关文章:

  • Leetcode PHP题解--D54 937. Reorder Log Files
  • upc组队赛18 THE WORLD【时间模拟】
  • Spring Boot 配置阿里druid数据库连接池
  • 设计模式学习04:代理模式
  • 图床失效了?也许你应该试试这个工具
  • 重学数据结构(一):基本概念
  • 《从机器学习到深度学习》笔记(4)划分数据集
  • VMWare 安装 Debian 9
  • mybatis 对枚举类型的自动转换
  • Windows 环境下vue+webpack前端开发环境搭建
  • 从零开始学习Kafka
  • 一个资深的Android开发者需要掌握哪些技能?
  • 【记录】mysql使用like匹配数据时关于通配符的使用误区
  • slice和splice区别用法
  • Jmeter图片爬虫
  • [PHP内核探索]PHP中的哈希表
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【技术性】Search知识
  • gulp 教程
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript的使用你知道几种?(上)
  • Java面向对象及其三大特征
  • Mocha测试初探
  • ReactNativeweexDeviceOne对比
  • SQLServer之创建显式事务
  • uva 10370 Above Average
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • WebSocket使用
  • 彻底搞懂浏览器Event-loop
  • 回顾 Swift 多平台移植进度 #2
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 异常机制详解
  • 正则表达式小结
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #HarmonyOS:软件安装window和mac预览Hello World
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)eclipse内存溢出设置 -Xms212m -Xmx804m -XX:PermSize=250M -XX:MaxPermSize=356m
  • (转载)Linux网络编程入门
  • .NET BackgroundWorker
  • .Net IE10 _doPostBack 未定义
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .Net下的签名与混淆
  • .net中的Queue和Stack
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • @Autowired自动装配
  • [AIGC] 如何建立和优化你的工作流?
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [BUG]vscode插件live server无法自动打开浏览器
  • [C# WPF] DataGrid选中行或选中单元格的背景和字体颜色修改