SDK 支持业务主动调用上报接口,上传自定义日志、文件等信息。该功能可用于用户反馈、异常发生等场景及时上报本地日志信息,帮助保留问题现场。
下发指令
1. 在下发指令页面,单击 新建查询,新建一个日志捞取命令,捞取命令需选择捞取的日志时间范围和设备 ID,支持为捞取增加标签和附件文件路径。

2. 待命令下发后,可等待 SDK 拉取配置,并上传对应日志文件。
主动上报
限制规则
为了避免过度使用而浪费用户的设备资源和流量,主动上报有以下限制规则:
文件大小限制:限制压缩前的文件大小,超过上限则只保留修改时间较新的部分文件。默认值 Wi-Fi 500M、4G 200M,可通过(Kotlin)TDDiag.uploadLogs(..., sizeLimit = byte) 或(Java)UploadHelper.setSizeLimit(sizeLimit) 修改限制。
次数限制:通过初始化参数 TDDiagConfig.Builder#setUploadCountLimit 设置。
流量限制:通过初始化参数 TDDiagConfig.Builder.setTrafficQuota(total, metered) 设置。
重试限制:启动时最多重试5个任务,超过时将按优先级从低到高丢弃部分任务。优先级为捞取 > 白名单标签 > 其它主动上报。
熔断机制:连续上传失败10次后,将停用主动上报6h。
白名单
对于一些关键上报,可以通过初始化参数 TDDiagConfig.Builder.setImportantLabels(...labels) 设置标签白名单,以绕过主动上报的限制规则。
注意:
仅允许把用户行为触发的标签加到白名单,例如用户反馈场景,以避免过度使用。建议把设置标签白名单的代码设为强制 CR。
检查数据上报

示例
示例1:上传最近半小时的日志。
val now = System.currentTimeMillis() / 1000TDDiag.upload(new UploadParam("recentLog").setTimestamp(now - 1800, now).setListener(uploadListener, true));
示例2:上传自定义文件。
TDDiag.upload(new UploadParam("customFile").setExtraPaths(listOf(path)).setExtraInfo(msg, null));
示例3:(Crash时)创建上传最近5分钟日志的任务,下次启动时上传。
long now = System.currentTimeMillis() / 1000;TDDiag.upload(new UploadParam("crash").setTimestamp(now - 300, now).setSaveSync(true));
说明: