在移动应用开发的世界里,日志就像是应用的“黑匣子”,记录着应用运行的点点滴滴。然而,传统的日志处理方式常常让人头疼:上报不及时、信息不全、分散在各个角落,简直是开发者的噩梦。别担心,美团点评开源的 Logan 项目,就像一把锋利的“瑞士军刀”,帮助你轻松解决移动端日志管理的各种难题。
一、Logan 是什么?
Logan,这个名字听起来是不是有点像某个超级英雄?其实它是 Log 和 An 的组合,寓意“个体日志服务”。Logan 是美团点评内部经过一年多稳定迭代的移动端基础日志组件,现在它已经敞开大门,欢迎各位开发者来体验。
Logan 的核心目标是解决移动端日志存储和收集的痛点。它不仅支持多种日志类型,还能本地记录,并在需要时统一上报。更重要的是,它不采样,力求记录每一个细节,让问题无处遁形。
二、Logan 的核心功能
1. 日志输入
Logan 就像一个“日志收纳箱”,支持各种类型的日志,包括代码级日志、网络日志、用户行为日志、崩溃日志、H5 日志等等。它不仅记录日志,还尽可能携带更多信息,让你在分析问题时有更全面的视角。
2. 日志存储
传统的日志存储方式常常面临卡顿、日志丢失、安全性和分散等问题。Logan 通过自研的日志协议,采用“先压缩再加密”的方式,使用流式加密和压缩,避免了 CPU 峰值,同时减少了 CPU 使用。跨平台 C 库负责日志协议数据的格式化处理,MMAP 机制解决了日志丢失问题,AES 加密则确保了日志的安全性。
3. 后端系统
后端系统是 Logan 的“大脑”,负责接收日志、解析归档、日志分析和数据平台。它支持主动上报和回捞上报,对日志进行解密、解压还原,并进行结构化归档存储。通过分析各类型日志,串联信息,形成完整的个人日志,为前端系统及第三方平台提供数据。
4. 前端系统
前端系统是 Logan 的“眼睛”,提供日志可视化、时间轴、日志搜索、日志筛选、日志分享等功能,帮助研发人员快速定位问题。特别是时间轴功能,通过图形方式进行语义分析,让日志信息一目了然。
时间轴中对代码级日志进行了日志类别的区分:
三、Logan 的最佳实践
在 Logan 出现之前,移动端日志处理常常是这样的:
各个系统日志分散,问题定位困难。而 Logan 的出现,让日志处理变得井井有条:
Logan 的核心体系由四大模块构成:日志输入、日志存储、后端系统、前端系统。
新的案例分析流程如下:
- 用户反馈问题。
- 客服记录 Case,引导用户上报 Logan 日志。
- 研发人员查找 Logan 日志,分析日志,还原 Case“现场”。
- 结合代码定位问题,修复问题。
四、如何部署和使用 Logan?
Logan 提供了 iOS、Android、Web 和小程序 SDK,以及分析服务和 LoganSite。
1. iOS SDK
使用 CocoaPods 安装:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
pod 'Logan', '~> 1.2.5'
end
然后运行 pod install。
2. Android SDK
需要 Android Studio 3.4+,NDK r16b,CMake 3.4.1+,JDK 1.7 或 1.8。
3. Web SDK
使用 npm 或 yarn 安装:
npm install --save logan-web
或
yarn add logan-web
4. LoganSite
需要 Node 10.15.3+ 和 yarn 1.15.2+ 或 npm 6.12.0+。
- 克隆仓库到本地。
- 在 LoganSite 目录下创建 .env.development 文件,并设置 API_BASE_URL。
- 运行 npm install 或 yarn,然后运行 npm run start 或 yarn start。
五、未来展望
Logan 的未来充满无限可能。美团点评计划提供基于 Logan 大数据的数据平台,包含机器学习、疑难日志解决方案、大数据特征分析等高级功能。
Module | Open Source | Processing | Planning |
iOS & macOS | √ | ||
Android | √ | ||
Web | √ | ||
Mini Programs | √ | ||
Back End | √ | ||
Front End | √ |
六、总结
Logan 不仅仅是一个日志库,更是一套完整的移动端日志解决方案。它解决了传统日志处理的诸多痛点,让开发者能够更高效地定位和解决问题。如果你还在为移动端日志管理而烦恼,不妨试试 Logan,它可能会给你带来意想不到的惊喜。
最后,别忘了去 GitHub 上给 Logan 点个 Star 哦!
https://github.com/Meituan-Dianping/Logan
本文暂时没有评论,来添加一个吧(●'◡'●)