SDKsFlutter
日志
配置 OpenIM Flutter SDK 日志,写入应用诊断信息并上传日志。
OpenIM Flutter SDK 日志用于定位初始化、连接和业务 API 调用问题。初始化参数可以控制日志级别、标准输出和日志文件路径。
初始化日志配置
Flutter SDK 在 initSDK() 时配置日志,而不是在 login() 时配置。
import 'dart:io';
final platformID = Platform.isIOS
? IMPlatform.ios
: IMPlatform.android;
await OpenIM.iMManager.initSDK(
platformID: platformID,
apiAddr: apiAddr,
wsAddr: wsAddr,
dataDir: dataDir,
listener: connectListener,
logLevel: 5,
isLogStandardOutput: true,
logFilePath: logFilePath,
);示例面向 Flutter 的 Android 与 iOS 运行环境:Android 使用 IMPlatform.android,iOS 使用 IMPlatform.ios。不要把 Android 平台值硬编码到 iOS 构建中。
| 参数 | 说明 |
|---|---|
logLevel | SDK 日志级别数字,默认值为 6。 |
isLogStandardOutput | 是否输出到平台标准日志。 |
logFilePath | 可选日志文件路径,需要位于应用可写目录。 |
日志级别越详细,产生的日志内容越多。日志目录受平台文件权限与生命周期约束。
写入与上传日志
await OpenIM.iMManager.logs(
logLevel: 5,
file: 'chat_repository.dart',
line: 120,
msgs: 'load conversation page failed',
err: error.toString(),
keyAndValues: ['conversationID', conversationID],
);可以监听上传进度并调用 uploadLogs():
OpenIM.iMManager.setUploadLogsListener(
OnUploadLogsListener(
onUploadProgress: (current, size) {
updateLogUploadProgress(current, size);
},
),
);
await OpenIM.iMManager.uploadLogs(ex: 'user initiated diagnostics');setUploadLogsListener() 保存的是 manager 级 singleton listener,后一次设置会覆盖前一次。SDK 没有 remove 或 unset API,因此应在应用统一的 SDK 绑定层设置一次,并由该层把进度分发给当前界面;切换账号时可清空应用层订阅和上一账号的上传状态。
uploadLogs() 的 Future 成功表示本次日志上传请求已完成。
这个页面有帮助吗?