在console.log中断?

时间:2016-06-02 16:21:09

标签: node.js webstorm

我的node.js测试代码中有一个令人厌烦的问题。某处,某些东西使用console.log打印出错误消息(我认为)。我对日志中的混乱有些挑剔,所以我试图抓住它的任何东西。我100%确定它不在我的代码中,它必须在我们正在使用的某个库中。

这给我带来了一个有趣的问题:是否可以在console.log中设置断点?我在WebStorm IDE中工作,我在node.js 4.4.3上运行。

2 个答案:

答案 0 :(得分:1)

您可以使用打入调试器的自定义版本覆盖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; }

答案 1 :(得分:0)

你可以尝试这样的事情。

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