日志一般用于记录用户行为路径、网络诊断、设备状态等数据,以帮助研发同学解决用户反馈的问题,提升用户体验。移动端日志一般只存在于调试控制台或本地,在收到线上用户反馈问题时,有些很诡异而又不能复现的问题,研发同学无法通过远程拿到用户日志,在分析排查问题时,就缺少有效的日志数据支撑,排查问题效率比较低。为了帮助业务线更好的为用户提供服务,提高排查线上异常问题效率,因此我们研发移动端日志回捞基础组件
整体流程:
日志回捞的整体流程大致都是下面所示。
一,日志上报:
请求策略时机,有三种做法: (建议1或2)
1,用户点击问题反馈上报
2,平台配置wid->app enterforeground时调接口上报
3,推送(iOS需用户开启后台刷新,低电量模式会关闭)
上报日志流程:
请求策略接口失败,5s后再次请求,直到成功
二,日志采集
1),日志类型:
全埋点信息+ 代码log + 网络请求 + 防崩溃捕获的错误 + bugly崩溃捕获的崩溃各模块通过调用日志SDK提供的api, 加入日志
2),日志内容:(参考了美团Logan):
日志时间+日志类型+线程ID+是否主线程 + 详情
三,日志保存:
1,mmkv,(mmap),通过内存映射提高性能,同时解决crash前保存的值很容易出现保存失败的情况。
2,达到阈值后写入本地文件, 以日期时间命名文件,方便查找,单个文件大小为1m
3,数据可以加密
4,默认存储14天
欢迎访问我的微博留言:肚子吃撑的杜