littlebot
Published on 2025-04-17 / 0 Visits
0

【源码】基于iOS的Mars XLog日志集成系统

项目简介

本项目将Mars日志系统集成到iOS应用中,借助xlog有效减小日志文件大小,为开发者的日志管理与分析工作提供便利。

项目的主要特性和功能

  1. 支持多种日志级别,便于开发者调试与排查问题。
  2. 具备异步写入和压缩功能,减小日志文件大小,提升写入效率。
  3. 提供简洁的API接口,方便在项目中集成和使用。
  4. 可从沙盒路径获取日志文件并上传,便于远程查看与分析。
  5. 借助XlogDecoder工具进行日志解析,支持加密日志解析。

安装使用步骤

前提条件

假设用户已经下载了本项目的源码文件。

具体步骤

  1. 下载Mars官方文件,安装cmake和python3。
    • 安装命令:brew install cmakebrew install python3
  2. 编译Mars框架:
    • 修改ios.toolchain.cmake文件,在if(DEFINED PLATFORM)前插入set(PLATFORM SIMULATOR64) (SIMULATOR64:x86_64 OS:arm64)。
    • 进入mars文件目录,运行python build_ios.py生成mars.framework。
  3. /mars/mars/cmake_build/iOS/Darwin.out/mars.framework拖入iOS项目,并导入相应系统Frameworks。
  4. 初始化xlog,设置日志路径、级别、压缩模式等参数,示例代码如下: ```objc
  5. (void)setupXlogWithLogPath:(NSString )logPath { const char attrName = "com.apple.MobileBackup"; u_int8_t attrValue = 1; setxattr([logPath UTF8String], attrName, &attrValue, sizeof(attrValue), 0, 0);

    // init xlog mars::xlog::appender_set_console_log(false); xlogger_SetLevel(kLevelInfo); mars::xlog::XLogConfig config; config.mode_ = mars::xlog::kAppenderAsync; config.logdir_ = [logPath UTF8String]; config.compress_mode_ = mars::xlog::kZlib; config.compress_level_ = 0; config.cachedir_ = ""; config.cache_days_ = 0; // config.pub_key_ = " appender_open(config); } 5. 使用API接口写入日志,调用`appender_flush()`确保日志写入完成,示例代码如下:objc + (void)writeToFile:(NSString*)str { xlogger_Write(NULL, str.UTF8String); mars::xlog::appender_flush(); } 6. 在项目结束时调用`appender_close()`关闭日志系统,示例代码如下:objc + (void)closeXlog { mars::xlog::appender_close(); } ```

注意事项

  1. 直接include xlog头文件的oc文件名后缀必须为.mm,不能使用.m。
  2. 使用Mars日志系统时,需合理设置日志级别和压缩模式,以满足项目需求。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】