我的node.js测试代码中有一个令人厌烦的问题。某处,某些东西使用console.log打印出错误消息(我认为)。我对日志中的混乱有些挑剔,所以我试图抓住它的任何东西。我100%确定它不在我的代码中,它必须在我们正在使用的某个库中。
这给我带来了一个有趣的问题:是否可以在console.log中设置断点?我在WebStorm IDE中工作,我在node.js 4.4.3上运行。
答案 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);
});