You need to enable JavaScript to run this app.
导航
使用自定义日志
最近更新时间:2024.11.14 14:28:28首次发布时间:2024.09.06 17:05:25

本文介绍应用如何接入iOS、完成自定义数据的配置以及获取自定义日志数据的详细步骤。

步骤一:获取SDK包

  1. 在Podfile中,添加如下示例代码,获取SDK包。

    platform :ios, '10.0'
    source 'https://github.com/volcengine/volcengine-specs.git'
    
    pod 'RangersAPM', '5.1.3', :subspecs => [
        'Crash',
        'WatchDog',
        'OOM',
        'LAG',
        'UserException',
        'Monitors',
        'UITrackers',
        'HybridPro',
        'MemoryGraph',
        'NetworkPro',
        'EventMonitor',
        'SessionTracker',
        'APMLog',
        'CrashProtector',
        'CPUException',
        'MetricKit',
        'Disk',
        'GWPASan',
        'Coredump',
        'CloudCommand',
        'CN'      # 与 Global 必须二选其一
        'Global'  # 与 CN 必须二选其一
    ]
    

    说明

    • 添加上述代码会引入SDK的所有功能,如果不想引入全部功能,请按需引入子库,具体请参见Demo说明
    • APMPlus从3.10.0版本起支持苹果在WWDC 23要求的Privacy manifest功能。
    • CN 与 Global 用来指明数据上报的域名。
      • CN:上报到国内服务器
      • Global:上报到国外服务器
  2. 执行以下命令,安装SDK。

    pod install
    

步骤二:初始化SDK

说明

  • 初始化SDK阶段,不获取用户个人信息。
  • 建议在AppDelegate.mapplication didFinishLaunchingWithOptions:方法中,或者在用户同意隐私政策之后的合适时机,进行初始化SDK的操作。

添加以下示例代码,初始化SDK。

#import <RangersAPM.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    RangersAPMConfig *apmConfig = [RangersAPMConfig configWithAppID:@"{{app_id}}" appToken:@"{{app_token}}"];
    apmConfig.channel = @"App Store";
    /**
     首次启动由于没有获取到配置,无法确定需要开启哪些功能模块。可以配置此属性,来决定首次启动默认需要开启的功能模块,仅对首次启动生效,一旦拉取到配置,下次启动就会先读取本地缓存的配置来决定。
1. 建议默认开启崩溃分析(RangersAPMCrashMonitorSwitch)、启动分析(RangersAPMLaunchMonitorSwitch)、网络分析(RangersAPMNetworkMonitorSwitch),避免一些和首次启动强相关的数据丢失.
2. 配置默认开启模块后,新设备首次启动会默认打开这些模块,可能会出现平台上关闭了这些模块,但是依然有数据上报的情况,可能会给您的事件量造成意外的消耗;请根据您的应用情况灵活配置。
3. 配置多个模块可以参考这种写法:RangersAPMCrashMonitorSwitch | RangersAPMNetworkMonitorSwitch | RangersAPMLaunchMonitorSwitch
     */
    apmConfig.defaultMonitors = RangersAPMCrashMonitorSwitch;

    return YES;
}

说明

{{app_id}}{{app_token}}须替换为您创建的应用对应的AppID和AppToken,具体请参见如何查询AppID和AppToken?

步骤三:启动SDK并开启数据采集

注意

  • 建议启动代码调用时机尽量靠前,否则可能出现启动阶段(启动SDK代码调用之前)发生的崩溃无法捕获,或者启动分析数据产生误差。
  • 建议在AppDelegate.mapplication didFinishLaunchingWithOptions:方法中,或者在用户同意隐私政策之后的合适时机,完成启动SDK的操作。

添加以下示例代码,启动SDK并开启数据采集。

#import <RangersAPM.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 使用初始化阶段获取的config启动SDK
    [RangersAPM startWithConfig:apmConfig];
    [RangersAPM setUserID:@"xxxx"];
    [RangersAPM setDeviceID:@"xxxx"]; 
    
    return YES;
}

说明

如果需要使用自定义deviceID,需修改apmConfig的相关参数,具体请参见获取设备数与用户数

步骤四:写入自定义日志

自定义日志需要引入子库APMLog,通过使用SDK提供的接口进行打点,可以记录一些App运行期间产生的日志。自定义日志的日志类型分成用户自定义日志和APMPlus日志。

  • 用户自定义日志:用户根据业务打点的日志数据。
  • APMPlus日志:APMPlus SDK内置打点的异常、性能、网络、事件等日志数据。

用户自定义日志是用户根据业务打点的日志数据。
示例代码:

//无论使用哪类接口,首先都需要先调用如下接口开启Alog功能
//注意:仅在App启动时调用一次即可
#import "RangersAPM+ALog.h"

[RangersAPM setALogEnabled];  //启用Alog
[RangersAPM enableConsoleLog];  //同时在控制台输出日志

//Objective-C 可以使用如下接口进行日志打点
#import "RangersAPM+ALog.h"

//第一个参数标识当前日志的业务、场景等信息;
//第二个参数为日志具体信息,可以使用format类型,如果使用format,需要继续传入对应的参数
 RANGERSAPM_ALOG_DEBUG(@"Business", @"version : %@", [self version]);  //Debug类日志
 RANGERSAPM_ALOG_INFO(@"Business", @"version : %@", [self version]);   // Info类日志
 RANGERSAPM_ALOG_WARN(@"Business", @"version : %@", [self version]);   //Warn类日志
 RANGERSAPM_ALOG_ERROR(@"Business", @"version : %@", [self version]);   //Error类日志
  
//C/C++ 可以使用如下接口进行日志打点
#import "RangersAPM_ALog.h"
 
//第一个参数标识当前日志的业务、场景等信息;
//第二个参数为日志具体信息,可以使用format类型,如果使用format,需要继续传入对应的参数
 RANGERSAPM_ALOG_DEBUG_C("Business", "version : %s", version());
 RANGERSAPM_ALOG_INFO_C("Business", "version : %s", version());
 RANGERSAPM_ALOG_WARN_C("Business", "version : %s", version());
 RANGERSAPM_ALOG_ERROR_C("Business", "version : %s", version());
 
//Swift 可以使用如下接口进行日志打点
#import "RangersAPM+ALog.h"

//第一个参数为日志具体信息
//tag 标识当前日志的业务、场景等信息;
//fileName 为当前所在文件名,可以参考示例传入 #file
//funcName 为当前所在方法名,可以参考示例传入 #function
//line 为当前所在文件的行号,可以参考示例传入 #line
RangersAPM.debugALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line)
RangersAPM.infoALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line)
RangersAPM.warnALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line)
RangersAPM.errorALog("alogtest", tag: "Business", fileName: #file, funcName: #function, line: #line)

步骤五:获取自定义日志

您可以通过以下不同的方式将自定义日志上报到服务端。

崩溃时上报

  1. SDK上报配置页面配置崩溃时上报的开关。具体操作,请参见SDK上报配置

    1. 修改崩溃分析模块下配置项是否上报自定义日志为是。
      Image
      2. 当是否上传自定义日志命中后,就上传崩溃时间点N秒内的用户自定义日志。
      Image
  2. 查看自定义日志。

    • 方式一:在对应issue崩溃详情页面通过日志类型筛选后查看
      Image
    • 方式二:自定义日志页面通过事件类型随异常崩溃上报筛选后查看
      Image

端上主动上报

  1. SDK上报配置页面配置主动上报的开关。具体操作,请参见SDK上报配置
    Image

  2. 在业务代码中,调用主动上报的方法。

    调用方法一或者方法二,logtype传入为RangersAPMALogTypeCustom

    • 方法一
      Image
    • 方法二
      Image
  3. 自定义日志页面,通过事件类型主动上报筛选后查看查看自定义日志。
    Image

回捞

  1. 新建回捞任务。

    回捞日志前需要先新建自定义日志的回捞任务。

    1. 单击目标应用下的App端监控
    2. 在控制台左上角选择全部功能 > 回捞
    3. 在筛选区域单击iOS系统,然后单击新建任务
      Image
    4. 新建任务页面完成以下配置,然后单击保存
      Image
  2. 回捞页面,筛选时间、系统或者输入任务名称和创建人搜索回捞任务,然后查看回捞日志。