如何生成javascript堆栈跟踪?

如何生成javascript堆栈跟踪?,javascript,stack-trace,printstacktrace,Javascript,Stack Trace,Printstacktrace,关于如何以跨浏览器的方式在javascript中生成堆栈跟踪,有什么建议吗 较新的浏览器Chrome和Firefox公开了一个控制台对象,允许生成堆栈跟踪。此方法不提供将堆栈跟踪存储到变量的方法 工作非常好,但它会发出单独的ajax请求来加载作为跟踪的一部分包含的脚本文件。这似乎是跟踪库中的常用方法。我猜浏览器没有提供足够的信息来生成有意义的堆栈跟踪(行号、函数名、文件名、参数等)。到您的Airbrake帐户或Errbit服务器 我在IE中没有得到堆栈跟踪,其他的可能不完美,但它看起来确实与您

关于如何以跨浏览器的方式在javascript中生成堆栈跟踪,有什么建议吗

较新的浏览器Chrome和Firefox公开了一个控制台对象,允许生成堆栈跟踪。此方法不提供将堆栈跟踪存储到变量的方法

工作非常好,但它会发出单独的ajax请求来加载作为跟踪的一部分包含的脚本文件。这似乎是跟踪库中的常用方法。我猜浏览器没有提供足够的信息来生成有意义的堆栈跟踪(行号、函数名、文件名、参数等)。

到您的Airbrake帐户或Errbit服务器


我在IE中没有得到堆栈跟踪,其他的可能不完美,但它看起来确实与您要查找的内容一致。

创建一个错误对象并检查它是否有堆栈成员。改编自:


Error.stack记录在中。

您可以使用stacktrace.js生成javascript stacktrace


另外,您可以参考:

谢谢。我已经有了一个框架,可以登录到我的服务器。它基本上是javascript中的log4j。您提供的链接中的堆栈跟踪生成代码看起来像是从我问题中的项目中借用的。我正在寻找用于堆栈跟踪生成的其他库。实际使用的日志框架应该是独立的。IE9(让我们面对它,这可能是我们在这里遇到的问题)没有提供太多有用的信息,这是正确的。可以从
窗口获取文件和行号。onerror
除了只在部分时间触发,行号有时是错误的。是的,像往常一样,IE是问题的孩子。我一直在支持IE7,因为OneError事件的行号和函数名信息非常糟糕。它仍然是有用的;我用它来写未捕获错误的日志。
var e = new Error('dummy');
var stack = e.stack.replace(/^[^\(]+?[\n$]/gm, '') // remove lines without '('
  .replace(/^\s+at\s+/gm, '') // remove prefix text ' at '
  .split('\n');
console.log(stack);