有时,当我加载应用程序时,我会看到杂散的日志语句,但我不记得日志语句是如何调用的。有没有办法从Chrome开发人员工具中找到控制台日志消息的堆栈跟踪?获取控制台消息的堆栈跟踪
现在,我包的console.log与打印堆栈跟踪功能:
console.log = (function() {
var oldLog = console.log.bind(console);
return function() {
try { throw new Error(); } catch (e) {
oldLog(
e.stack.split('\n')
.slice(2)
.map((line) => line.trim().replace('at', 'from'))
.join('\n')
);
}
oldLog.apply(null, Array.prototype.slice.call(arguments));
};
}());
这将打印堆栈跟踪,除了日志信息。为了这是有用的,我必须在我的任何代码运行之前插入此代码。有没有办法从控制台上找到这些信息,而不必添加这个包装?
我主要使用Chrome开发人员工具,但如果在任何其他浏览器中都有可能,我会很感兴趣。
当您从代码(而不是控制台)执行console.log时,您可以一直查看控制台的右侧以查看位置(甚至可以单击它来打开它)。当然,如果你用自己的函数覆盖它,那么它就会工作,因为那么它只会指向你的替代console.log,而不是直接在代码中使用的那个。 – 2015-02-09 16:13:38
啊,对。那么堆栈跟踪呢? – Robz 2015-02-09 16:16:56
那些只存在错误,所以你将无法使用console.log来获取。你有没有尝试过console.trace? – 2015-02-09 16:17:26