我已经使用 实现了客户端异常日志记录window.onerror
,我在其中检索当前错误和堆栈跟踪,并使用 AJAX 将其发送到服务器
window.onerror = function(message, url, line) {
var stackTrace = printStackTrace(); //get stack trace
//send message, url, line and stackTrace to the server using an ajax call
}
printStackTrace
这个库提供的函数在哪里:http: //stacktracejs.com/
问题在于,在生产中所有 JavaScript 文件都被缩小,因此堆栈跟踪和行号并没有真正有用,因为所有错误都在文件的第 1 行报告,这是正常的,因为缩小版本包含一行代码。例如:
Message: Object doesn't support property or method 'indexOf'
URL: http://[server]/[site]/content/combined/combined.635EE367354E6DF721593CAC56FECF95.min.js
Line: 1
可以使用源映射来改进这一点,还是仅在开发者工具处于活动状态时才有效?
当没有激活开发人员工具/启用源映射的用户发生错误时,我想要的是使用源映射(或至少是实际行号)获取完整的堆栈跟踪。这可能吗?