浏览 SDKs · uni-app / uni-app x
平台
SDKsuni-app / uni-app x

日志与诊断

配置 UniApp SDK 日志级别并上传原生诊断日志。

复制

UniApp SDK 的日志用于定位原生 App 中的初始化、连接和业务 API 问题。可以分别配置日志级别、标准输出和日志文件目录,以适配不同部署环境的诊断需求。

配置日志级别

日志设置属于 initSDK() 的初始化参数:

import {
  OpenIMLogLevelDebug,
  initSDK,
} from '@/uni_modules/unix-openim-sdk'

await initSDK({
  platformID: currentOpenIMPlatform,
  apiAddr,
  wsAddr,
  dataDir: '',
  logFilePath: '',
  logLevel: OpenIMLogLevelDebug,
  isLogStandardOutput: true,
  systemType: 'your-app',
})
常量数值建议用途
OpenIMLogLevelPanic0仅保留最高严重级别。
OpenIMLogLevelFatal1致命错误。
OpenIMLogLevelError2生产环境错误诊断。
OpenIMLogLevelWarn3生产环境默认可考虑的警告级别。
OpenIMLogLevelInfo4联调信息。
OpenIMLogLevelDebug5开发调试。
OpenIMLogLevelVerbose6临时深度诊断,避免长期在生产环境开启。

isLogStandardOutput 控制是否把 SDK 日志输出到标准输出;logFilePath 用于指定原生日志目录。路径需要是 App 可写目录,不要使用代码包的只读路径。完整初始化字段见工程与平台接入

上传诊断日志

uploadLogs() 把原生 SDK 已写入本地文件的日志提交到当前部署配置的日志收集服务。

参数类型是否必填说明
linenumber本次上传读取的日志行数,按当前部署约定设置。
exstring附加诊断说明,内容格式由当前部署约定。
import {
  OpenIMUploadLogsProgressEvent,
  off,
  onUploadLogsProgress,
  uploadLogs,
} from '@/uni_modules/unix-openim-sdk'

const handleLogUploadProgress = (
  event: OpenIMUploadLogsProgressEvent | null,
) => {
  if (event == null) return
  setDiagnosticUploadProgress(event.progress)
}

const logUploadSubscription =
  onUploadLogsProgress(handleLogUploadProgress)

await uploadLogs({
  line: 2000,
  ex: 'connection-diagnostic-session',
})

off(logUploadSubscription)

Promise 成功返回字符串,表示本次日志上传调用已完成。该方法不会修改用户、会话或消息,也不会触发业务领域事件。上传失败时,Promise 抛出的错误包含 errCodeerrMsg

除本页外,其他 API 页面不要求业务显式生成或传递 operationID;需要与 OpenIMServer 日志精确关联时,再由诊断工具按当前 SDK 约定处理。