京东零售云mPaaS移动端日志回捞探索实践
1.1. 引言 移动操作系统为开发者提供了功能丰富的日志组件,比如说Android Studio 中的Logcat窗口会显示系统消息,例如在进行垃圾回收时显示的消息,以及使用Log类添加到应用的消息, 能够辅助开发者进行高效的开发工作。然而在生产环境中,当用户(或者老板)反馈一些问题,又比较冷僻难以复现的时候(不是Crash),常常就会陷入一筹莫展的境地。此时,借助线上异常数据实时上报,我们只能是祈祷用户网络环境通畅,能够及时把异常数据第一时间上报上来,然而这种做法并不能保证我们永远那么幸运。 于是,我们需要研制一款性能较高的移动日志系统来解决我们当下的难题,该系统能具备日志信息完整、性能损耗低、轻量级(体积)、精确回捞的特点。 接下来介绍一下移动日志系统的研发历程。 1.2. 设计方案 移动日志系统使用了Linux系统中提供的mmap作为日志文件的载体,目前业内流行的XLOG日志组件、MMKV、美团Logan均采用了此方案,其最大的优势就是高效I/O、低损耗、跨进程 等优势,接下来引入下mmap的基本介绍。 1.2.1. 什么是mmap? 操作系统分为内核态和用户态两种运行模式: 内...
