我的项目-'@log-reporting/core - V2'
@log-reporting/core - V2
值得注意: v2 版本的包为“@log-reporting/core”, 而 v1 版本的包为“log-reporting”; 写法参数等完全是不一样的,v2 版本为全新版本
当然, v2 版本由内置的types
, 如果您的项目因为安装@log-reporting/core
而导致ts
类型报错,那就需要您安装@log-reporting/types
了,这样就可以完全解决类型报错的问题;
当前版本仅仅支持客户端使用,不支持在服务端使用
🔈 地址
🔈 注意事项
本系统的开发目的很简单,就是为了在部分情况下搜集前端的异常日志,用于分析异常情况;
如:线上环境的项目我们会吧一些日志删除,如果前端报错那么日志是首选, 这样的情况我们不知道是哪里的报错导致页面崩溃的;
那么开发这款工具常规情况下能解决大部分的问题;
该版本为全新版本, 与之前的版本会有很大的区别;
🔈 日志搜集范围
- 资源:资源地址不正确或不存在导致的资源异常
- 代码:搜集报错信息,页面的崩溃等等;
- 请求:截请求参数错误,访问地址不存在,异常拦
- 额外添加功能:支持录制自定义时间的视频,但是最大时间不能超过 1 分钟;
- 支持性能监控, 白屏时间, 页面加载时间等等;
- 支持
pv
页面浏览, 需要手动提交; - 支持
曝光
, 需要手动设置对应的元素(仅支持在可是区域内);
🔈 如何使用
js 项目引入
需要克隆下载该项目, 执行命令pnpm run build
, 之后会在根目录dist
文件下看到打包的对应的文件信息; 根据不同平台引入即可;
下面代码示例为浏览器的使用:
1 | <script src="dist/index.umd.js"></script> |
vue 项目引入
在vue
中使用,npm install @log-reporting/core
安装依赖
在main.js
中引入
1 | import { init } from "@log-reporting/core"; |
根据自己的业务需要开启对应的配置信息;
🔈 关于pv统计
与曝光统计
目前仅仅支持手动上报;
pv
统计:
1 | import { lestenPv } from "@log-reporting/core"; |
曝光统计
:
1 | import { lestenExposure } from "@log-reporting/core"; |
🔈 屏幕录制
该版本中有内置的屏幕录制
功能,也就是相对于错误日志的操作视频记录;
为什么要添加这个功能?
因为相对于日志上报,我们希望在线上环境
中能够记录一些操作的视频,这样我们就能更好的了解用户的操作情况; 但是,由于浏览器
本身对屏幕录制
的支持不是很友好,所以需要我们自己实现; 所以,我们自己实现了一个简单的屏幕录制
功能;
当然主要是引入了rrweb插件;
屏幕录制的配置
1 | { |
让然如果您觉得该功能可能涉及到隐私情况,您可以选择关闭,这样的话视频信息不会进行上报
视频信息的加密解密
为了保证安全性以及性能,视频信息是做了 安全加密 的,所以您需要解密才能使用;
目前加密的的方式分为俩中:lz 和 base64
- 加密使用:
encryptFun(value: Record<string, any>, k?: string)
;- 该方法是对象进行加密,加密后的数据是字符串, 默认的加密
- k: 可以是固定值
snapshot
也可以是其他,当k
为其他值时,默认加密方式为base64
- 解密使用:
decryptionFun(value: string, k?: string)
- 该方法是解密,解密后的数据是
object
- 将您加密后等到的字符串给到该方法即可;
k
的作用类似于上面的k
;
- 该方法是解密,解密后的数据是
解密之后展示回放
1 | import { decryptionFun } from "@log-reporting/core"; |
🔈 额外导出的方法
这些方法不是主要核心方法,一般情况没什么用,但是有些时候可能需要用到,所以这里导出出来;
1 | import { _global, _support } from "@log-reporting/core"; |
- _global: 全局对象,可以理解为
window
- _support: 基础信息参数
🔈 其他
@log-reortinging/types - 类型校验
@log-reporting/core
有内置的类型校验,如果您的项目是ts
搭建,那么需要再次安装@log-reporting/types
,否则会导致类型报错,当然,您也可以自行定义类型,但是需要您自行保证类型是否正确;
如果您引入正确之后,不需要特殊使用就可以在项目中使用了;您也可以点击内置api
可以查看源码编译而成的index.d.ts
;
@log-reporting/logger - 日志
@log-reporting/logger
没有太大的用处,就是依赖于@log-reporting/core
配置中的debuge
产生的,也就是在console.log
的基础上做了一层美化效果, 当然您也是可以关闭的,配置完全是自定义的;