腾讯 MarsXlog 完整 demo

官方 github : https://github.com/Tencent/mars/tree/master/mars/xlog
mars 完整编译项目 : https://gitee.com/mayundaze/mars.git
mars 完整集成项目 : https://gitee.com/mayundaze/test-mars-xlog.git

包含日志的解密 和 密钥对的生成 和 成功编译
test-mars-xlog 的 readme 里面有详细教程

Mars Xlog 介绍

Mars Xlog 是腾讯 Mars 开源组件中的高可靠性、高性能的运行期日志组件,专为移动/跨平台场景设计,解决了传统日志方案在性能、可靠性、加密、压缩、跨平台兼容等方面的痛点,广泛应用于微信等腾讯系产品,也是 Mars 核心子模块之一。

核心特性

  1. 高性能 & 低开销

    • 采用异步写入(默认 AppednerModeAsync)减少主线程阻塞,也支持同步模式(AppednerModeSync)满足特殊场景;
    • 底层通过 JNI 对接原生层,避免纯 Java/上层语言的性能损耗,日志写入效率远高于普通日志库。
  2. 高可靠性

    • 支持日志缓存(cachedir/cachedays 配置),即使应用崩溃/进程异常,缓存的日志也能尽可能保留;
    • 提供 appenderFlush 手动刷盘接口,可主动将内存日志刷到文件,避免日志丢失;
    • 支持设置日志文件最大大小(setMaxFileSize)和存活时间(setMaxAliveTime),自动清理过期日志,防止存储溢出。
  3. 压缩 & 加密

    • 压缩:支持 ZLIB/ZSTD 两种压缩模式(默认 ZLIB),并提供 1-9 级压缩级别可选,平衡日志体积和性能;
    • 加密:支持通过公钥(pubkey)对日志加密,保障日志内容安全,防止篡改/泄露。
  4. 多级别日志管控

    • 日志级别覆盖 VERBOSE(0)/DEBUG(1)/INFO(2)/WARNING(3)/ERROR(4)/FATAL(5)/NONE(6),可按需过滤日志;
    • 支持动态调整日志级别,也可单独控制控制台日志开关(setConsoleLogOpen)。
  5. 跨平台兼容

    • 原生支持 Android、iOS/macOS、Windows 等平台,提供统一的 API 设计(如 appenderOpen/appenderClose 初始化/销毁接口);
    • Android 端提供 Java 层封装(com.tencent.mars.xlog.Xlog/Log),同时保留 JNI 层对接能力;iOS/Windows 端提供 C++ 原生接口。
  6. 多实例管理

    • 支持通过 nameprefix 区分多个日志实例(openLogInstance/getXlogInstance/releaseXlogInstance),满足多模块独立日志需求。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础认识 mars 是微信官方的终端基础组件 C++ 编写(为了兼容多平台) 业务性无关,平台性无关的基础组件 支...
    墨染书阅读 6,337评论 1 4
  • 前言 Mars[https://github.com/Tencent/mars] 是微信官方的跨平台跨业务的终端基...
    JerryFans阅读 2,559评论 0 4
  • 同步地址 本文介绍 MARS xlog 使用以及使用过程中踩过的坑 xlog 是什么 xlog 是微信开源框架 M...
    Noah牛YY阅读 13,001评论 2 0
  • 一、业务背景 用户使用客户端应用过程中,会遇到各种bug, 包括奔溃、数据显示错误、交互出现问题等等,虽然APP已...
    Jonrencxr阅读 11,418评论 3 6
  • 微信Mars——xlog使用全解析 很多人问我微信的Mars到底有什么用,今天就告诉你其中一个最简单的! 如约而至...
    eclipse_xu阅读 23,399评论 8 26

友情链接更多精彩内容