中断控制台.log



我的节点.js测试代码中遇到了一个令人讨厌的问题。在某个地方,某些东西使用控制台打印出错误消息.log(我认为)。我对日志中的杂乱有点挑剔,所以我试图抓住它是什么。我 100% 确定它不在我的代码中,它一定在我们正在使用的某个库中。

这让我想到了一个有趣的问题:是否可以在控制台.log中设置断点?我在WebStorm IDE中工作,我在节点上运行.js 4.4.3。

您可以使用

中断调试器的自定义版本覆盖console.log

var _log = console.log.bind(console);
// es6
console.log = (...args) => {
  _log(...args);
  debugger;
}
// es5
console.log = function() {
  _log.apply(null, arguments);
  debugger;
}

如果您想复制/粘贴到浏览器控制台中进行路测,这里有一行代码(在 Chrome 51、Safari 9.1 和 Firefox 46 中验证):

var _log = console.log.bind(console); console.log = function() { _log.apply(null, arguments); debugger; }

你可以尝试这样的事情。

process.on('uncaughtException', function(err) {
    console.log('Threw Exception: ' + err.stack);
});

相关内容

最新更新