SDKsAndroid
日志
配置 Android SDK 日志、写入应用诊断信息并上传日志。
OpenIM Android SDK 日志用于定位初始化、连接和业务 API 调用问题。可以通过初始化配置控制日志级别、标准输出和日志目录。
初始化日志配置
在调用 initSDK() 时配置日志:
File dataDirectory = new File(application.getFilesDir(), "openim");
File logDirectory = new File(application.getFilesDir(), "openim-logs");
InitConfig config = new InitConfig(
apiAddr,
wsAddr,
dataDirectory.getAbsolutePath()
);
config.logLevel = BuildConfig.DEBUG ? LogLevel.Debug : LogLevel.Warn;
config.isLogStandardOutput = BuildConfig.DEBUG;
config.logFilePath = logDirectory.getAbsolutePath();
boolean initialized = OpenIMClient.getInstance().initSDK(
application,
config,
connectionListener
);| 字段 | 说明 |
|---|---|
logLevel | 使用 LogLevel 常量控制详细程度。可选值包括 DebugWithSQL、Debug、Info、Warn、Error、Panic 和 Fatal。 |
isLogStandardOutput | 是否把 SDK 日志输出到 Android 标准日志。 |
logFilePath | 可选日志目录,需要位于应用可写范围。 |
DebugWithSQL 会包含数据库调试信息,Debug、Info、Warn 和 Error 等级依次减少输出内容。应用可以根据排查范围选择日志级别。
写入应用日志
需要把业务日志写入 SDK 日志时,使用 logs():
OpenIMClient.getInstance().logs(
LogLevel.Error,
ChatRepository.class.getSimpleName(),
184,
"send_message_failed",
errorMessage,
"conversationID", conversationID,
"clientMsgID", clientMsgID
);currentClassName 和 currentLineNum 用于定位调用位置,msgStr 是简短动作描述,errStr 是错误信息。Warn、Error、Panic 和 Fatal 级别必须提供非空错误信息。末尾的 extra 按“键、值”成对传入。
旧版带 OnBase<String>、Map 参数的 logs() 重载已经废弃,不应在新代码中使用。
上传日志
uploadLogs() 可将客户端日志上传至服务器,主要使用场景是用户主动提交诊断日志。
String cancelID = UUID.randomUUID().toString();
OpenIMClient.getInstance().uploadLogs(
new OnBase<String>() {
@Override
public void onSuccess(String data) {
// 日志上传请求已完成。
}
@Override
public void onError(int code, String error) {
// code 和 error 说明失败原因。
}
},
new ArrayList<>(),
2000, // line
cancelID,
"support-ticket-42", // ex
new UploadLogProgress() {
@Override
public void onProgress(long current, long total) {
// current 和 total 表示上传进度。
}
}
);| 参数 | 说明 |
|---|---|
params | 历史遗留参数,当前 SDK 不使用;传入空列表,例如 new ArrayList<>()。 |
line | 本次上传读取的日志行数配置。 |
cancelID | 本次上传的稳定标识,可使用业务生成的 UUID。 |
ex | 附加到上传任务的说明,例如工单 ID。 |
UploadLogProgress | 提供当前进度和总量,用于更新上传界面。 |
成功 callback 表示本次日志上传请求完成。
上传完成后,可以结合发生时间、操作名称和相关的 conversationID、clientMsgID、groupID 或 roomID 定位对应调用。
相关页面
这个页面有帮助吗?