是否可以将所有浏览器控制台消息/错误通过管道传输到远程计算机?



我目前正在尝试调试Cordova应用程序的InAppBrowser(在Android上(中发生的javascript错误。不幸的是,尽管我可以使用chrome的远程调试/检查工具连接到手机上的Web视图,但控制台输出是空的,尽管事实并非如此。(无论是否遇到问题,都应该显示杂项消息/警告。

在这一点上,我在尝试获取控制台/错误消息时遇到了障碍。似乎什么都不起作用。谁能想到一种方法可以告诉webview/javascript将所有错误消息转发到远程地址?(显然,我永远不会发布具有这种配置的应用程序。

如果是 JavaScript 错误,您可以使用window.onerror捕获它。这个想法是捕获错误,然后将其发布到日志记录服务器。

window.onerror = function (msg, url, lineNo, columnNo, error) {
alert(msg)
// Log error to external server.
// axios.post(url, JSON.stringify({msg, url, lineNo, columnNo, error}))
}
const test = undefined
test.error

我在生产环境中执行此操作。这有助于捕获错误并更快地通知我问题。

如果你有兴趣将错误和其他信息记录到另一台计算机,可以使用报告 API,其中使用Report-To服务器标头(可能与其他标头一起(向报告终结点报告指定的错误。下面是一些可能的报告类型的列表(有关网络错误日志记录的更多详细信息(。它目前在Chrome/Edge中受支持,并且可以通过Firefox中的about:config启用。

相关内容

最新更新