BetterJS/badjs-report

什么是 offlineLog ?

caihuiji opened this issue · 7 comments

为什么要有 offlineLog?
badjs 本身已经支持 info 级别用于记录用户操作日志。但是腾讯许多业务PV 往往很高,频繁的上报info 级别日志,不仅浪费用户流量,而且也浪费存储。
所以badjs-report1.3 提供了存储在用户本地的日志,而且在离线状态下也可以用。

什么时候用 offlineLog?

  • info、error、debug 上报过多会造成流量的浪费,而且在弱网络下面还会造成流失。
  • info 和 offlineLog 的区别在于 info 不仅会记录离线日志,同时也会实时上报

所以我们建议每个小时高于500左右的上报量,我们可以建议采用offlineLog ,而且我们推荐你使用 offlienLog 详细记录用户的操作日志,便于后面排查问题

offlineLog 原理是什么?
offloneLog 使用浏览器的 indexdb 进行存储日志的,badjs-report 的所有上报都会记录到离线日志中。而且有效期默认是最近5天,所以用户不用担心用户本地的日志过多。

怎么使用?

  • offlineLog 支持用户主动上报,开发者可以提供反馈界面,方便用户直接上报日志。
  • badjs-web 标记某个uin ,当用户登陆后,badjs-report 会向服务检测然后自动上报。

您好,首先非常感谢各位开源了badjs这套有用的前端错误上报系统。
关于offlineReport还是没有弄明白。项目搭建跑起来之后。

//初始化
BJ_REPORT.init();
//记录离线日志
BJ_REPORT.offlineLog("offlineLog");
//上报离线日志
BJ_REPORT.reportOfflineLog();

没有在管理后台看到离线日志相关数据啊。info debug都没有问题
在浏览器的network中看到了一条post请求至xxx.com/offlineLog,携带数据是

offline_log:{"logs":[],"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36","startDate":null,"endDate":1495324393574,"id":2,"uin":"Math"}

求解答,各位辛苦了

@hellovigoss 已经更新了。 你再重新更新一下 badjs-web 就能看到离线日志的入口。

@caihuiji 非常感谢。
更新完毕已经出现了离线日志的入口,但是对截图这块的下拉列表表示不解,望大大解答一下
qq20170522-090548 2x

image
你的 uin 是Math ,离线日志的名字是以 uin 进行显示的。然后后面是时间,排序是倒序的

非常感谢 @caihuiji

……这几时加的,也不跟我说下

请问离线的上报方式为什么没有和普通上报一致(图片get),而是主动上报用iframe的表单提交,自动上报用srcipt访问离线日志上报接口,再上报?
另外上报之后为什么没有立刻clearDB