起因

项目采用vue全家桶开发,现在拟嵌入sentry,实现对于线上网站进行错误日志记录。其实上传日志很简单,基本配置就可以了,但是上传配套的sourcemap则颇为费劲。这里记录一下使用心得。


实施步骤

上传日志

sentry使用文档,官方介绍很简单
main.js 中引入如下代码:


npm install @sentry/integrations
# or
yarn add @sentry/integrations
import Vue from 'vue'
import * as Sentry from '@sentry/browser';
import * as Integrations from '@sentry/integrations';Sentry.init({dsn: 'your dsn',integrations: [new Integrations.Vue({Vue,attachProps: true,}),],
});

其中 DSN 在项目的下图位置找到

这样之后我们重新打包项目,错误就可以自动上传到sentry的项目下issues里面了。

通常我们还会做一步,设置release的版本,很简单,只需要在sentry初始化的时候配置一下release就可以了。后续所有的sourcemap文件上传也需要配置相同的release版本号。

Sentry.init({dsn: 'your dsn',release: 'release version',integrations: [new Integrations.Vue({Vue,attachProps: true,}),],
});

但是因为我们的代码是webpack打包后的,所以你看到的错误日志是这样的,根本无法定位具体出错代码的位置。

如果我们要想看到具体的报错信息,那我们就需要上传sourcemap文件了。

上传sourcemap文件

sourcemap文件的上传方式有两种

  1. sentry-cli 手动上传
  2. 第三方包自动上传,这里采用官方推荐的 @sentry/webpack-plugin
采用sentry-cli的方式上传步骤如下:
  1. 全局安装 @sentry/cli

    npm i -g @sentry/cli

  2. 登录

    sentry-cli --url 域名地址 login

    这里的域名地址,是你的host地址,包括域名[+端口]。因为这一步采用网页形式登录,所以需要你提前申请auto Token,申请方式如下:
    点击 账号 -> API keys, 点击 Create New Token
    记得 project:releasesproject:write 要勾选上

  3. 设置版本号

    sentry-cli releases -o 组织名 -p 项目名 new 版本号

    其中,进入你的项目下,查看浏览器地址,组织名【sentry】和项目名【your-project-name】。

  4. 打包你的项目,生成sourcemap

  5. 上传sourcemap文件到sentry

    sentry-cli releases -o 组织名 -p 项目名 files 版本号 upload-sourcemaps 打包后的js目录 --url-prefix 线上js访问地址

    其中最需要注意的是线上js访问地址,多半上传sourcemap成功,但是不能解析的都源于此。成功后的sourcemap文件可以在你的项目下的releases下对应版本查看,正确的应该如下图:

    正常解析后的结果是可以定位到代码行的错误提示,如下:


    其他:
    删除sourcemap指令

        sentry-cli releases files 发布版本号 delete --all
    
利用@sentry/webpack-plugin自动上传sourcemap

惯例,还是先介绍官网资料

const SentryCliPlugin = require('@sentry/webpack-plugin');const config = {plugins: [new SentryCliPlugin({include: '.',ignoreFile: '.sentrycliignore',ignore: ['node_modules', 'webpack.config.js'],configFile: 'sentry.properties',}),],
};

这里我们还依赖一个配置文件,根目录下的sentry 配置文件 .sentryclirc,文件内容如下:

[defaults]
url=your url
org=your organization
project=your project[auth]
token=your auth

通常情况下,我们在plugun的配置中,还需要额外配置两个参数: releaseurlPrefix, release同前面一样,urlPrefix也一样(很重要)。

其实两种方式都掌握最好,因为我们通常会趋向于利用第三方工具自动上传,但是遇到问题的时候,我们可以选择手动上传的方式进行调试。

结果

完成上述步骤,我们就可以对于线上遇到的问题进行监控了。
由于我们的项目需要同时监控**线上版**和**预发布**版本,所以,project name 和 release, 以及 dsn都需要根据环境变量做适配。

参考

  • 前端错误监控 -【Vue】与【Sentry】的结合

sentry + vue实现错误日志监控相关推荐

  1. 前端错误日志监控:Sentry 的介绍与使用

    sentry 1.背景 在我们开发完成后,会有一系列上线之前的测试,比如,先测pre,再测beta,目的就是以确保项目能在生产环境上没有事故. 但对于每一个项目,我们都没办法保证代码零 bug.零报错 ...

  2. Uniapp + Sentry 实现错误日志监控

    详细可查看此篇文章-Vue2.0 + Sentry 实现错误日志监控 sentry 运行截图

  3. 前端错误日志监控-sentry安装

    前端错误日志监控-sentry 之 安装篇 文章目录 前端错误日志监控-sentry 之 安装篇 题外话 senrry 「哨兵」 优点 正题:senrry 安装 安装 docker 下载安装脚本 修改 ...

  4. 监控服务(新增)错误日志脚本并发送DingDing|邮件通知模板

    文章目录 1.监控模板 2.使用脚本 3.效果 4.如何安装DingDing和邮件服务器 5.拓展 1.监控模板 该模板支持 (1)DingDing告警与邮件告警 (2)自定义监控日志的黑名单与白名单 ...

  5. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题...

    背景 在这越来越发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视. 所以在我们前端开发完成后,会有一些列的web应用的上线验证,如自测.QA测试.code review 等 ...

  6. 基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题

    基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题 背景 在这越来越发达的网络时代,web应用也是越来越复杂,尤其是前端的开发,也是越来越受重视 ...

  7. vue+sentry 前端异常日志监控

    vue+sentry 前端异常日志监控 参考文章: (1)vue+sentry 前端异常日志监控 (2)https://www.cnblogs.com/qiezuimh/p/11440506.html ...

  8. 前端错误监控与错误日志

    平时工作中没怎么接触到这部分,对它的了解也零零碎碎的.今天看了几篇文章,算是有个完整的认识了,在这里总结记录一下. 项目上线之后肯定无法避免所有的bug,有些bug出现后开发人员并不知道,有的知道了缺 ...

  9. Sentry异常日志监控-Java接入

    Java 使用Sentry监控后台日志 1.0 平时怎么查看异常日志的? 大多时候查看日志都是通过查看日志文件,或者在命令行通过命令查看,这样是不是很不方便?是真的很不方便!!! 那么有没有什么工具可 ...

最新文章

  1. 令人拍案叫绝的Wasserstein GAN
  2. Web框架之Django篇
  3. 芯片里的CPU、GPU、NPU是什么,它们是如何工作的
  4. 操作系统下查看HBA卡信息wwn的方法
  5. LeetCode 713. 乘积小于K的子数组(滑动窗口)
  6. 《史上最简单的 SpringCloud 教程》系列
  7. [GCJ] Qualification Round 2017
  8. 计算机试讲教案模板范文,试讲教案模板1.doc
  9. In fact, at this stage, neither the 65W
  10. Windows 搭建 翼龙面板 ( Pterodactyl ) 前端 教程
  11. 原来射极跟随器还有这个应用
  12. 史济怀20180915_1 有限覆盖定理
  13. 飞书:远程办公更轻松
  14. imple-unpack---攻防世界
  15. 质量管理中的“二八法则”
  16. 未动科技与地平线达成战略合作,共推全场景智能驾驶加速落地
  17. 快速获取当天0点0分0秒(00:00:00),23点59分59秒(23:59:59)
  18. 八门神器gameKiller和游戏金手指gamecih简单原理分析
  19. Blinker 天气时钟 esp8266+SH1106 OLCD屏显示
  20. cena评测系统:自定义校验器(浮点误差)

热门文章

  1. java.util (Collection接口和Map接口)
  2. 并发数据结构-1.1 并发的数据结构的设计
  3. 【Java】PMD规则学习(1) --字符串比较
  4. Django 缓存系统
  5. android 底部菜单
  6. Android系统Recovery工作原理之使用update.zip升级过程分析(二)---u...
  7. dbgrid 获取前台页面参数
  8. Java线程的使用及共享协作
  9. Linux ftp传送问题 WARNING! 258831 bare linefeeds received in ASCII mode
  10. window安装gcc编译器