在javascript或nodejs中是否有办法以编程方式获取chrome控制台中的所有内容,以便将其保存到文件或数据库中?
答案 0 :(得分:0)
在执行您要记录的代码之前,将console.log
覆盖一个将其抛入数组(或其他任何地方)的代码
ECMAScript 6中的示例:
var logs = [];
var oldConsoleLog = console.log;
console.log = function(...args) {
logs.push(args);
oldConsoleLog.call(this, args);
}
答案 1 :(得分:0)
隐藏您想要观察的方法并对其数据执行某些操作,例如
if (console) (function (obj, types, callback) {
var slice = Array.prototype.slice, // slice used later to protect args from change
i;
function wrap(type, method, callback) {
return function () {
callback.call(this, type, slice.call(arguments), method);
return method.apply(this, arguments);
};
}
for (i = 0; i < types.length; ++i)
obj[types[i]] = wrap(types[i], obj[types[i]], callback);
}(
console,
['log', 'warn', 'error'],
function (type, args, meth) {
// this is the callback, do something with the data
// **don't use console here unless you want an infinite loop ;)
alert(type);
}
));
这里的 IIFE 是完全通用的,你可以用它来影响你想要的任何对象上的方法
在这里,我将回调设置为仅提醒类型,即如果您使用console.log
则会提醒 log 然后它会记录到控制台
// with callback defined above,
console.log('foo'); // alerts "log" then logs "foo"
答案 2 :(得分:0)
在Chrome控制台中获取所有内容的另一种方法是使用http://www.consoleexport.com 您输入您的URL并提交。它将在表格中显示所有控制台条目,您可以将其复制并粘贴到电子表格中。或者,您可以选择将控制台条目导出为.txt(制表符分隔)或.xlsx格式文件。