【发布时间】:2013-10-11 06:39:15
【问题描述】:
我已经使用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
是否可以使用源映射来改进这一点,还是仅在开发者工具处于活动状态时才有效?
当没有激活开发人员工具/启用源映射的用户发生错误时,我想要使用源映射(或至少是实际行号)获取完整的堆栈跟踪。这可能吗?
【问题讨论】:
-
需要解决同样的问题。你现在做这个多久了?
-
@iSid 没有找到解决方案。在浏览器实现它之前,这似乎是不可能的。不知道比答案中写的更多信息。对不起
-
@iSid 这个问题好像有更多的解决方案:stackoverflow.com/questions/19420604/…