代码拉取完成,页面将自动刷新
经历了13个月的时间,log.js V2 版本终于制作完成了,期间伴随着一个完整 C端系统的成长,在与实际业务的碰撞中,进行了数次小版本的迭代,全新重构后的 log.js 新增了许多特性,也同时移除了一些冗余功能,下面让我重新来介绍下新版本的 log.js. issue 我会第一时间回复,欢迎大家 star 开源地址
log.js 是一个前端监控插件,他可以提供
等... 监控内容还在持续补充中
作为一个web前端开发者,深知web信息的采集受到终端影响而天然采集困难,异常场景往往无法完整复现,或者未知的异常影响用户留存,现阶段市面上的web探针大多集成在自身应用体系内,存在 配置重量级,难以解耦 等问题。
log.js 开箱即用的方式极大缩减了信息采集的难度,渐进式的设计也可以满足大部分自定义场景
不会,log.js 基于hack劫持方式采集底层数据,与框架无关,不论是 React,Vue,Jquery,都能hold住.
不会,log.js 不会操作视图,同时采集数据后的上报也以队列形式等待业务io低峰期才会进行.
目前不行,log.js 基于 W3C 标准实现的 DOM,目前还没有针对小程序的兼容规划.
开箱即用,log.js 为 IIFE 方式注册,无需生成实例,调用 log.init(…params)
您仅需要配置发送地址即可启动 log.js
<head>
<meta charset="UTF-8">
<title>示例</title>
<script src="https://logjs.site/version/2.0.0beta/log.min.js"></script>
</head>
<body>
<script>
log.init({ sendAddress: 'https://www.xxx.com/xxx' });
</script>
</body>
log.init({
logType: ["error", "diy", 'click', 'io'],//日志类型 - [ 'error', 'click', 'diy', 'io' ]
degree: 1,//采集率 - (0 - 1)
id: 'logJs',//logjs实例标识,
ioFilter: item => true,//I/O筛选器(fun,用以定义 io_list 获取规则)
sendAddress: '',//日志发送地址(默认 POST application/json 接收服务需自行配置跨域)
reportingBefore: params => params,//日志上报前钩子(用以重构参数结构,追加自定义参数)
})
log.init(…params) //启动log.js 注意:在未调用此方法前,log.js 实际上已经开始工作了,不过信息均存放在内存中,外部无法访问
log.setOptions(…params) //更新配置
log.log(...) //打印远程日志 与console.log 使用方式一致,消息将作为自定义消息推送
log.getTerminalInfo() //获取终端信息 注意:需要在 log.js init 后使用
log.getPerformanceInfo() //获取性能信息 注意:需要在 log.js init 后使用
log.version //获取当前 log.js 版本
{
"io_list": [{ //io消息继承自 PerformanceEntry [文档地址](https://developer.mozilla.org/zh-CN/docs/Web/API/PerformanceEntry)
"name": "http://localhost:63342/log.js/website/index.html?_ijt=26dmaaemranugo6rciidd5nar5",
"entryType": "navigation",
"startTime": 0,
"duration": 191.5,
"initiatorType": "navigation",
"nextHopProtocol": "http/1.1",
"renderBlockingStatus": "blocking",
"workerStart": 0,
"redirectStart": 0,
"redirectEnd": 0,
"fetchStart": 4,
"domainLookupStart": 4,
"domainLookupEnd": 4,
"connectStart": 4,
"connectEnd": 4,
"secureConnectionStart": 0,
"requestStart": 9.199999928474426,
"responseStart": 10.899999976158142,
"responseEnd": 13.299999952316284,
"transferSize": 3064,
"encodedBodySize": 2764,
"decodedBodySize": 2764,
"serverTiming": [],
"unloadEventStart": 17.5,
"unloadEventEnd": 17.5,
"domInteractive": 110.10000002384186,
"domContentLoadedEventStart": 110.10000002384186,
"domContentLoadedEventEnd": 110.29999995231628,
"domComplete": 190.79999995231628,
"loadEventStart": 190.79999995231628,
"loadEventEnd": 191.5,
"type": "reload",
"redirectCount": 0,
"activationStart": 0,
"logType": "io",
"timeStep": 1667894728849
}],
"terminal_info": {
"resolving_power": "1440*900", //宽高比
"referrer": "http://localhost:63342/log.js/website/index.html?_ijt=26dmaaemranugo6rciidd5nar5", //referrer
"ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36", //ua
"browser": { //浏览器信息
"name": "Chrome",
"version": "107.0.0.0",
"major": "107"
},
"engine": { //引擎信息
"name": "Blink",
"version": "107.0.0.0"
},
"os": { //系统信息
"name": "Mac OS",
"version": "10.15.7"
},
"device": {},
"cpu": {},
"ip": "xx.xx.x.xx",
"city": "湖北省武汉市"
},
"performance_info": {
"fcp": 115.39999997615814, //首次内容绘制 (FCP)
"fp": 11, //白屏时间(FP)
"redirect_time": 0, //重定向耗时
"domain_lookup_time": 0, //DNS查询耗时
"connect_time": 0, //TCP链接耗时
"response_time": 2, //HTTP请求耗时
"dom_complete_time": 81, //DOM解析耗时
"ttfb": 10.899999976158142 //第一字节时间 (TTFB)
},
"uid": "a165595ca1d7f19c6eef5a31f586767b",//user标识,由ip与ua生成,用以追溯行为轨迹
"id": "logJs" //配置信息中的id标识将携带在每条报文中
}
... 其他消息体消息待补充
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型