浏览 SDKs · React Native
平台
SDKsReact Native

日志

配置 OpenIM React Native SDK 日志,写入应用诊断信息并上传日志。

复制

OpenIM React Native SDK 日志用于定位初始化、连接和业务 API 调用问题。开发和预发布环境可以输出较详细的日志;生产环境应降低日志级别,并避免记录 Token、完整消息正文、原始文件 URL、通话房间凭据和用户隐私字段。

初始化日志配置

在调用 SDK 初始化接口时配置日志相关选项。有关完整的服务地址、存储路径与认证登录流程,请参考认证与管理登录会话。

await OpenIMSDK.initSDK({
  apiAddr,
  wsAddr,
  dataDir,
  logFilePath,
  logLevel: LogLevel.Debug,
  isLogStandardOutput: true,
});

参数说明

参数类型必填含义
logFilePathstring是SDK 本地日志文件存放目录,必须位于应用可写沙盒路径。
logLevelLogLevel否日志详细输出级别,可选 Debug、Info、Warn、Error、Fatal 和 Panic。
isLogStandardOutputboolean否是否将 SDK 底层日志输出至系统标准控制台;开发与联调时建议开启。

开发与测试环境推荐使用 LogLevel.Debug;生产环境推荐设置为 LogLevel.Warn 或 LogLevel.Error,并关闭标准输出以优化性能。

写入应用日志

将业务侧的诊断信息追加写入 SDK 日志系统,便于日后统一提取或上传排查:

await OpenIMSDK.logs({
  logLevel: LogLevel.Error,
  file: 'chatRepository.ts',
  line: 184,
  msgs: 'send_message_failed',
  err: error.message,
  keyAndValue: [
    'conversationID',
    conversationID,
    'clientMsgID',
    clientMsgID,
  ],
});

参数说明

参数类型必填含义
logLevelnumber是本条日志的输出级别。
filestring是触发日志的代码文件名或模块名称。
linenumber是触发日志的代码行号。
msgsstring是简短的业务动作或诊断描述信息。
errstring是错误描述信息;若无错误则传入空字符串 ""。
keyAndValuestring[]否附加诊断上下文键值对数组,按 [key1, val1, key2, val2] 成对传入。

keyAndValue 仅记录排查所需的业务标识(如 conversationID、clientMsgID、groupID 等),请勿记录 Token、明文密码等敏感凭据。

上传日志

在用户遇到问题或主动点击“上报日志”诊断功能时,调用此方法将客户端日志打包并上传至服务端:

await OpenIMSDK.uploadLogs({
  line: 2000,
  cancelID: 'support-ticket-42',
  ex: 'user-initiated-diagnostics',
});

参数说明

参数类型必填含义
linenumber是本次上传读取的日志行数上限。
cancelIDstring否本次上传任务的唯一标识,可用于取消上传。
exstring否附加业务诊断说明,切勿包含隐私凭据。

返回结果

调用成功代表日志上传任务已顺利提交并处理完成。上传前建议向用户清晰说明日志收集范围,并确保符合数据隐私与合规要求。