我已经使用实现了客户端异常日志记录
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
这可以通过使用源映射来改进吗?还是只有当开发工具处于活动状态时才有效?
我想要的是,当一个没有激活开发工具/启用源映射的用户出现错误时,使用源映射(或者至少是实际的行号)来获得完整的堆栈跟踪。这有可能吗?