日志回捞SDK

Posted by 杜文杰 on 2022-09-16

日志一般用于记录用户行为路径、网络诊断、设备状态等数据,以帮助研发同学解决用户反馈的问题,提升用户体验。移动端日志一般只存在于调试控制台或本地,在收到线上用户反馈问题时,有些很诡异而又不能复现的问题,研发同学无法通过远程拿到用户日志,在分析排查问题时,就缺少有效的日志数据支撑,排查问题效率比较低。为了帮助业务线更好的为用户提供服务,提高排查线上异常问题效率,因此我们研发移动端日志回捞基础组件

整体流程:

日志回捞的整体流程大致都是下面所示。

1

一,日志上报:

请求策略时机,有三种做法: (建议1或2)

1,用户点击问题反馈上报

2,平台配置wid->app enterforeground时调接口上报

3,推送(iOS需用户开启后台刷新,低电量模式会关闭)

上报日志流程:

请求策略接口失败,5s后再次请求,直到成功

二,日志采集

1),日志类型:
全埋点信息+ 代码log + 网络请求 + 防崩溃捕获的错误 + bugly崩溃捕获的崩溃
2各模块通过调用日志SDK提供的api, 加入日志

2),日志内容:(参考了美团Logan):
日志时间+日志类型+线程ID+是否主线程 + 详情
2

三,日志保存:


1,mmkv,(mmap),通过内存映射提高性能,同时解决crash前保存的值很容易出现保存失败的情况。
2,达到阈值后写入本地文件, 以日期时间命名文件,方便查找,单个文件大小为1m
3,数据可以加密
4,默认存储14天


欢迎访问我的微博留言:肚子吃撑的杜