官方 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 核心子模块之一。
核心特性
-
高性能 & 低开销
- 采用异步写入(默认
AppednerModeAsync)减少主线程阻塞,也支持同步模式(AppednerModeSync)满足特殊场景; - 底层通过 JNI 对接原生层,避免纯 Java/上层语言的性能损耗,日志写入效率远高于普通日志库。
- 采用异步写入(默认
-
高可靠性
- 支持日志缓存(
cachedir/cachedays配置),即使应用崩溃/进程异常,缓存的日志也能尽可能保留; - 提供
appenderFlush手动刷盘接口,可主动将内存日志刷到文件,避免日志丢失; - 支持设置日志文件最大大小(
setMaxFileSize)和存活时间(setMaxAliveTime),自动清理过期日志,防止存储溢出。
- 支持日志缓存(
-
压缩 & 加密
- 压缩:支持 ZLIB/ZSTD 两种压缩模式(默认 ZLIB),并提供 1-9 级压缩级别可选,平衡日志体积和性能;
- 加密:支持通过公钥(
pubkey)对日志加密,保障日志内容安全,防止篡改/泄露。
-
多级别日志管控
- 日志级别覆盖
VERBOSE(0)/DEBUG(1)/INFO(2)/WARNING(3)/ERROR(4)/FATAL(5)/NONE(6),可按需过滤日志; - 支持动态调整日志级别,也可单独控制控制台日志开关(
setConsoleLogOpen)。
- 日志级别覆盖
-
跨平台兼容
- 原生支持 Android、iOS/macOS、Windows 等平台,提供统一的 API 设计(如
appenderOpen/appenderClose初始化/销毁接口); - Android 端提供 Java 层封装(
com.tencent.mars.xlog.Xlog/Log),同时保留 JNI 层对接能力;iOS/Windows 端提供 C++ 原生接口。
- 原生支持 Android、iOS/macOS、Windows 等平台,提供统一的 API 设计(如
-
多实例管理
- 支持通过
nameprefix区分多个日志实例(openLogInstance/getXlogInstance/releaseXlogInstance),满足多模块独立日志需求。
- 支持通过