Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

什么是 offlineLog ? #25

Open
caihuiji opened this issue Apr 30, 2017 · 7 comments
Open

什么是 offlineLog ? #25

caihuiji opened this issue Apr 30, 2017 · 7 comments

Comments

@caihuiji
Copy link
Member

caihuiji commented Apr 30, 2017

为什么要有 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 会向服务检测然后自动上报。
@hellovigoss
Copy link

hellovigoss commented May 20, 2017

您好,首先非常感谢各位开源了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"}

求解答,各位辛苦了

@caihuiji
Copy link
Member Author

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

@hellovigoss
Copy link

hellovigoss commented May 22, 2017

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

@caihuiji
Copy link
Member Author

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

@hellovigoss
Copy link

非常感谢 @caihuiji

@miniflycn
Copy link
Member

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

@mayloveless
Copy link

mayloveless commented Aug 7, 2018

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants