今天我发现需要跟踪和检索Javascript错误堆栈跟踪来解决它们.
今天我们能够捕获所有其余的调用,这个想法是,一旦出现错误,自动发布该错误的堆栈跟踪以及其余已保存服务的响应,以便我们可以检测,重现和解决几乎相同的问题环境/局面.
作为一项要求,我们被要求制作一个可以包含而不会被侵入的模块,例如: 在一个JS中包含包含钩子逻辑的模块,将不是侵入性的,在各种JS文件中包含几行代码将是侵入性的.
目标是制作一个可以包含在已经开发的系统中的工具并跟踪错误事件(如控制台).
我已经读过这个跟踪器逻辑了:
我们需要做类似的事情,跟踪错误并将其发送到我们的服务器.
正如"Dagg Nabbit"所说的那样...... "现在正在疯狂地发生错误,很难得到堆栈跟踪 ......"
所以,我们得到了很多付费产品,但它们是如何运作的呢?
在Airbrake中,他们使用stacktrace和window.onerror:
window.onerror = function(message, file, line) {
setTimeout(function() {
Hoptoad.notify({
message : message,
stack : '()@' + file + ':' + line
});
}, 100);
return true;
};
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚堆栈跟踪何时真正使用.
在某些时候,stacktrace,raven.js和其他跟踪器需要try/catch.
当客户端发生意外错误时,如何将堆栈跟踪发送到我的服务器?任何建议或良好做法?