如何在 javascript 中获取和存储控制台记录值

How to get and store the console logged value in javascript

我正在尝试获取控制台记录值

这是代码,

console.log('sample output');
var logBackup = console.log;
var logMessages = [];

console.log = function () {
  logMessages.push.apply(logMessages, arguments);
  logBackup.apply(console, arguments);
};

console.log('logged values here', logMessages);

但它返回一个递归空数组,

有什么方法可以获取控制台记录值并在网页上显示该值

也许是这样的?只是一个快速的破解,但关键是我检查我没有将 logMessages 的引用添加到 logMessages 本身,避免循环引用。

console.log('sample output');
var logBackup = console.log;
var logMessages = [];

console.log = function (...argz) {
  pushArgz = argz.filter(a => a !== logMessages);
  logMessages.push(...pushArgz);
  logBackup.apply(console, argz);
};

console.log('logged values here', logMessages);
console.log('logged values here', logMessages);
console.log('logged values here', logMessages);