浏览 SDKs · React Native
SDKsReact Native

日志

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

复制

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

初始化日志配置

调用 initSDK() 时配置日志相关选项。apiAddrwsAddrdataDir 以及初始化和登录流程见认证与管理登录会话

await OpenIMSDK.initSDK({
  apiAddr,
  wsAddr,
  dataDir,
  logFilePath,
  logLevel: LogLevel.Debug,
  isLogStandardOutput: true,
});
参数类型说明
logFilePathstringSDK 日志目录,应位于应用可写目录。
logLevelLogLevel日志详细程度,可选 DebugInfoWarnErrorFatalPanic
isLogStandardOutputboolean是否输出 SDK 日志到平台标准日志;开发诊断时可开启。

开发诊断可使用 LogLevel.Debug。生产环境通常使用 LogLevel.WarnLogLevel.Error,并关闭不必要的标准输出。

写入应用日志

调用 logs() 将业务诊断信息写入 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[]附加诊断字段,按“键、值”成对传入。

keyAndValue 只记录排查所需的非敏感标识,例如 conversationIDclientMsgIDgroupIDroomID

上传日志

用户主动提交诊断日志时,调用 uploadLogs() 上传客户端日志:

await OpenIMSDK.uploadLogs({
  line: 2000,
  cancelID: 'support-ticket-42',
  ex: 'user-initiated-diagnostics',
});
参数类型是否必填说明
linenumber本次上传读取的日志行数配置。
cancelIDstring本次上传的标识。
exstring附加诊断说明,不能包含凭据或隐私数据。

调用返回后,日志上传请求已完成。上传前应向用户说明日志收集范围,并按隐私与合规要求处理日志。