官方 github : https://github.com/Tencent/mars/tree/master/mars/xlog
mars 完整編譯項(xiàng)目 : https://gitee.com/mayundaze/mars.git
mars 完整集成項(xiàng)目 : https://gitee.com/mayundaze/test-mars-xlog.git
包含日志的解密 和 密鑰對(duì)的生成 和 成功編譯
test-mars-xlog 的 readme 里面有詳細(xì)教程
Mars Xlog 介紹
Mars Xlog 是騰訊 Mars 開(kāi)源組件中的高可靠性、高性能的運(yùn)行期日志組件,專(zhuān)為移動(dòng)/跨平臺(tái)場(chǎng)景設(shè)計(jì),解決了傳統(tǒng)日志方案在性能、可靠性、加密、壓縮、跨平臺(tái)兼容等方面的痛點(diǎn),廣泛應(yīng)用于微信等騰訊系產(chǎn)品,也是 Mars 核心子模塊之一。
核心特性
-
高性能 & 低開(kāi)銷(xiāo)
- 采用異步寫(xiě)入(默認(rèn)
AppednerModeAsync)減少主線程阻塞,也支持同步模式(AppednerModeSync)滿足特殊場(chǎng)景; - 底層通過(guò) JNI 對(duì)接原生層,避免純 Java/上層語(yǔ)言的性能損耗,日志寫(xiě)入效率遠(yuǎn)高于普通日志庫(kù)。
- 采用異步寫(xiě)入(默認(rèn)
-
高可靠性
- 支持日志緩存(
cachedir/cachedays配置),即使應(yīng)用崩潰/進(jìn)程異常,緩存的日志也能盡可能保留; - 提供
appenderFlush手動(dòng)刷盤(pán)接口,可主動(dòng)將內(nèi)存日志刷到文件,避免日志丟失; - 支持設(shè)置日志文件最大大小(
setMaxFileSize)和存活時(shí)間(setMaxAliveTime),自動(dòng)清理過(guò)期日志,防止存儲(chǔ)溢出。
- 支持日志緩存(
-
壓縮 & 加密
- 壓縮:支持 ZLIB/ZSTD 兩種壓縮模式(默認(rèn) ZLIB),并提供 1-9 級(jí)壓縮級(jí)別可選,平衡日志體積和性能;
- 加密:支持通過(guò)公鑰(
pubkey)對(duì)日志加密,保障日志內(nèi)容安全,防止篡改/泄露。
-
多級(jí)別日志管控
- 日志級(jí)別覆蓋
VERBOSE(0)/DEBUG(1)/INFO(2)/WARNING(3)/ERROR(4)/FATAL(5)/NONE(6),可按需過(guò)濾日志; - 支持動(dòng)態(tài)調(diào)整日志級(jí)別,也可單獨(dú)控制控制臺(tái)日志開(kāi)關(guān)(
setConsoleLogOpen)。
- 日志級(jí)別覆蓋
-
跨平臺(tái)兼容
- 原生支持 Android、iOS/macOS、Windows 等平臺(tái),提供統(tǒng)一的 API 設(shè)計(jì)(如
appenderOpen/appenderClose初始化/銷(xiāo)毀接口); - Android 端提供 Java 層封裝(
com.tencent.mars.xlog.Xlog/Log),同時(shí)保留 JNI 層對(duì)接能力;iOS/Windows 端提供 C++ 原生接口。
- 原生支持 Android、iOS/macOS、Windows 等平臺(tái),提供統(tǒng)一的 API 設(shè)計(jì)(如
-
多實(shí)例管理
- 支持通過(guò)
nameprefix區(qū)分多個(gè)日志實(shí)例(openLogInstance/getXlogInstance/releaseXlogInstance),滿足多模塊獨(dú)立日志需求。
- 支持通過(guò)