闯入console.log?
Break in console.log?
我的 node.js 测试代码中有一个令人讨厌的问题。在某处,某些东西使用 console.log 打印出一条错误消息(我认为)。我对日志中的混乱有点挑剔,所以我试图抓住它。我 100% 确定它不在我的代码中,它一定在我们正在使用的某个库中。
这让我想到了一个有趣的问题:是否可以在console.log中设置断点?我在 WebStorm IDE 工作,运行 在 node.js 4.4.3。
你可以尝试这样的事情。
process.on('uncaughtException', function(err) {
console.log('Threw Exception: ' + err.stack);
});
您可以用一个自定义版本覆盖 console.log
来破坏调试器:
var _log = console.log.bind(console);
// es6
console.log = (...args) => {
_log(...args);
debugger;
}
// es5
console.log = function() {
_log.apply(null, arguments);
debugger;
}
如果您想 copy/paste 进入浏览器控制台进行路测(已在 Chrome 51、Safari 9.1 和 Firefox 46 中验证),这里有一行:
var _log = console.log.bind(console); console.log = function() { _log.apply(null, arguments); debugger; }
我的 node.js 测试代码中有一个令人讨厌的问题。在某处,某些东西使用 console.log 打印出一条错误消息(我认为)。我对日志中的混乱有点挑剔,所以我试图抓住它。我 100% 确定它不在我的代码中,它一定在我们正在使用的某个库中。
这让我想到了一个有趣的问题:是否可以在console.log中设置断点?我在 WebStorm IDE 工作,运行 在 node.js 4.4.3。
你可以尝试这样的事情。
process.on('uncaughtException', function(err) {
console.log('Threw Exception: ' + err.stack);
});
您可以用一个自定义版本覆盖 console.log
来破坏调试器:
var _log = console.log.bind(console);
// es6
console.log = (...args) => {
_log(...args);
debugger;
}
// es5
console.log = function() {
_log.apply(null, arguments);
debugger;
}
如果您想 copy/paste 进入浏览器控制台进行路测(已在 Chrome 51、Safari 9.1 和 Firefox 46 中验证),这里有一行:
var _log = console.log.bind(console); console.log = function() { _log.apply(null, arguments); debugger; }