# 小程序信息管理
# 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
配置。 - 一旦设置该类,则配置项中的
setLogMaxAliveSec
、setXLogDir
等配置项将会失效,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 | 视图层小程序加载耗时 |