我们目前正在与一组用户对内部企业网络应用(react / redux)进行beta测试。当我尝试使用window.onerror
将错误记录到服务器时,有些情况下应用程序可能会在没有记录的情况下崩溃(例如:网络/身份验证问题)。在这种情况下,我希望能够捕获devtools控制台输出的转储。
组织中的每个人都在运行chrome,所以我只能提供打开devtools&复制/粘贴(我担心某些用户无法跟踪like this),但我希望可能有一种更容易,更少参与的方式来获取这些信息?
答案 0 :(得分:1)
我对您遇到的问题的理解是,当发生错误时您可能没有连接,因此您依赖于作为回退登录到控制台。
为了以更稳定的方式将错误传递给您的服务器,您可以考虑在错误发生时存储它们。如果您说应用程序可能在不同时间崩溃,则最好将错误存储在浏览器存储中,例如Local Storage或IndexedDB。
然后,您可以使用轮询功能检查浏览器存储中是否存在错误,并向日志记录服务器发出发布请求。只有在成功响应时才能从存储中删除项目,否则它将在下一个内部再次尝试。
您可以决定在关闭标签时(或新会话开始时)是否清除存储中的错误 - 例如会话存储,或重新开始轮询。或者,您可能会丢弃时间戳太长而无法关注的错误。无论哪种方式,您都可以选择在将来恢复错误。
我只会在启用测试版功能开关时启用此功能,因为应用可能会从轮询浏览器存储中获得性能影响。