日志上报

更新时间: 2022/01/21 16:16:56

若在接入,或者使用白板的过程中遇到问题,可以使用SDK中提供的日志上报功能将日志传递给云信。

开发阶段

在工具栏中加入uploadLog按钮。在桌面端左侧工具栏,移动端右上工具栏的更多按钮中,包含了日志上报按钮。

toolCollection.setContainerOptions(
    [
        ...otherContainers,
        {
            position: 'xxx',
            items: [
                ...otherItems,
                {
                    tool: 'uploadLog',
                    hint: '上传上报至服务器'
                },
            ]
        }
    ]
)

debug模式下的工具栏默认带有上传日志按钮。工具栏的debug模式通过下面的方法开启:

/**
 * SDK接入
 */
ToolCollection.getInstance({
    ...params,
    options: {
        ...otherParams,
        debug: boolean
    }
})

/*
 * Webview接入
 */
{
    action: 'jsLoginIMAndJoinWB',
    param: {
        ...params,
        debug: boolean
    }
}

点击上传按钮,或者直接在控制台输入上述函数后等待5s后,日志将被上传到云信的服务器中。上传结束后,会提示用户将appkey, account, channel, 以及上传日志的时间告诉开发者。开发者将根据这些信息找到日志,定位并解决问题。

使用上面的日志上报功能时,需要用户已经连接进了房间中。加入房间是为了确保用户和服务器连接成功,能够利用服务器上传日志。

另外,浏览器关闭并不会删除日志,用户重新打开浏览器之后,依旧可以按照上述方式上传。但是日志不会永久保存,它的默认有效期为10天。已经上传的日志会从浏览器中删除。

线上阶段

web端

应用部署后,可能不会将日志上报按钮直接暴露给用户。此时可以在出现问题后,让用户打开控制台,并在控制台中输入yunxinWbLogUpload()上报日志。用户也可以在自己的应用中,设计UI接口,让用户点击后调用yunxinWbLogUpload()函数上报日志。

yunxinWbLogUpload会返回promise

客户端

客户端使用webview接入。webviewjsBridge提供了webLog接口。用户可以在客户端监听此接口,然后将日志保存下来,如果发现运行过程中出现问题,则可以将相应的日志发送给开发者处理。

webLog的协议格式如下:

{
    action: 'webLog',
    param: {
        type: 'info' | 'error' | 'warn' | 'log' | 'debug',
        msg: string
    }
}

注意客户端在关闭浏览器再打开后,不能够上传上一次运行时的日志。所以用户需要在应用运行时,将日志保存在本地,并定期删除过期的日志。

此文档是否对你有帮助?
有帮助
去反馈
  • 开发阶段
  • 线上阶段
  • web端
  • 客户端