FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 小程序信息管理

# 1. Log日志初始化配置

安卓SDK 中的Log日志管理是随初始化配置项一起设置的。

// 设置Log日志的等级,只有高于该等级的Log才会写入。
public Builder setLogLevel(XLogLevel logLevel);
// 设置Log日志文件的存放文件夹,注意,该配置项仅在引入XLogSDK后才会生效
public Builder setXLogDir(File xLogDir);
// 设置日志文件保留时间(默认10天,至少为1天),注意,该配置项仅在引入XLogSDK后才会生效
public Builder setLogMaxAliveSec(long logMaxAliveSec);

示例代码:

val config = FinAppConfig.Builder()
                // 其它配置项省略
                .setLogLevel(XLogLevel.LEVEL_VERBOSE)
				// 注意,该配置项仅在引入XLogSDK后才会生效
                .setXLogDir(logDir)
				// 注意,该配置项仅在引入XLogSDK后才会生效
                .setLogMaxAliveSec(7*24*60*60)
                .build()
 
FinAppClient.init(application, config, callback)

# 1.1. 设置Log日志的等级

// 设置Log日志的等级,只有高于该等级的Log才会写入。
public Builder setLogLevel(XLogLevel logLevel);

# 1.2. 设置Log日志文件存放的文件夹

注意,该配置项仅在引入XLogSDK后才会生效。

// 设置Log日志文件的存放文件夹
public Builder setXLogDir(File xLogDir);

# 1.3. 设置日志文件保留时间

注意,该配置项仅在引入XLogSDK后才会生效。

// 设置日志文件保留时间(默认10天,至少为1天),单位秒
public Builder setLogMaxAliveSec(long logMaxAliveSec);

# 2. 接管SDK内的日志记录系统

创建自己的日志记录类,并实现IAppletLogDelegate接口,示例如下:

class LogDelegate : IAppletLogDelegate {

    override fun logMessage(content: String) {
        val file = getLogFile()
        file.appendText("${content}\n")
    }
}

在初始化SDK时,设置此日志记录类:

 val finAppConfig = FinAppConfig.Builder()
			// 其它配置项省略
            .setLogDelegate(LogDelegate::class.java)
            .build()
FinAppClient.init(application, finAppConfig, finCallback)

有相关日志信息产生时,会调用logMessage方法,其中参数content为完整日志内容,包含【日志时间】、【日志等级】【日志Tag】【日志详情】。

注意

  • 该类的logMessage是否会接收到日志内容,取决于setLogLevel方法中设置的日志等级以及debugMode配置。
  • 一旦设置该类,则配置项中的setLogMaxAliveSecsetXLogDir等配置项将会失效,SDK将不会处理日志,均需要客户端自行处理。
  • 该类将会在SDK运行时通过反射手段进行实例化,因此请务必包含且仅包含无参的构造方法。
  • 该类的实例可能运行在不同进程中,因此若需要记录一些临时变量,请勿直接记录在该类内部,并且视情况做好进程判断处理。

# 3. 获取SDK内的性能统计记录

创建自己的性能统计记录类,并实现IAppletPerformanceRecordDelegate接口,示例如下:

class PerformanceRecordDelegate : IAppletPerformanceRecordDelegate {

    override fun appletReceivePerformanceRecords(
        appInfo: FinAppInfo,
        performance: Performance
    ) {
        val file = getLogFile()
        file.appendText("${Gson().toJson(performance)}\n")
    }
}

在初始化SDK时,设置此性能统计记录类:

 val finAppConfig = FinAppConfig.Builder()
			// 其它配置项省略
            .setPerformanceRecordDelegate(PerformanceRecordDelegate::class.java)
            .build()
FinAppClient.init(application, finAppConfig, finCallback)

有相关性能统计记录产生时,会调用appletReceivePerformanceRecords方法,其中参数包含了此条性能记录对应的小程序信息appInfo,以及性能记录详情performance类。

注意

  • 该类将会在SDK运行时通过反射手段进行实例化,因此请务必包含且仅包含无参的构造方法。
  • 该类的实例可能运行在不同进程中,因此若需要记录一些临时变量,请勿直接记录在该类内部,并且视情况做好进程判断处理。

性能统计记录关键字段说明:

entryType 指标类型 name 指标名称 说明
inner processLaunch 进程启动时间
navigation appInfo 小程序详情接口
loadPackage downloadPackage 下载小程序(开始)
navigation frameworkInfo 基础库详情接口,开启了基础库预下载的情况不会有该条日志
loadPackage downloadFramework 下载基础库,开启了基础库预下载的情况不会有该条日志
loadPackage unzipFramework 解压基础库,开启了基础库预下载的情况不会有该条日志
loadPackage downloadPackage 下载小程序(完成)
loadPackage unzipApp 解压小程序
navigation appLaunch 总启动耗时
script frameworkLoad 基础库加载
script evaluateScript 执行js代码
script serviceLoad 逻辑层执行耗时
render frameworkRenderLoad 视图层基础库加载耗时
render viewRender 视图层执行耗时
render firstRender 视图层小程序加载耗时
© 2022 FinClip with ❤