如何在JavaScript中从Chrome的控制台读取获取所有控制台数据

2022-08-30 05:14:56

我想在我的应用程序中放置一个按钮,如果您按下它,它将获取写入控制台的所有内容的内容,并将其通过电子邮件发送给我(用于报告错误)。我知道我可以保留一个变量,每次我做一个控制台.log也会将消息附加到该变量,但我试图保持较低的应用程序内存消耗,这样从控制台获取它就会更有效率。

有没有办法从javascript中检索控制台消息?


答案 1

你不能。控制台中的内容无法从 JavaScript 中读取。

您可以做的是挂接该函数,以便在它记录时进行存储:console.log

console.stdlog = console.log.bind(console);
console.logs = [];
console.log = function(){
    console.logs.push(Array.from(arguments));
    console.stdlog.apply(console, arguments);
}

console.logs包含所有记录的内容。您可以随时通过执行来清洁它。console.logs.length = 0;

您仍然可以通过调用 来执行标准的、非存储的日志。console.stdlog


答案 2

获取所有控制台数据

如何在js中读取浏览器控制台错误?

如何在JavaScript中从Chrome的控制台读取

https://www.quora.com/How-do-I-read-console-window-errors-from-Chrome-using-JavaScript

原木

console.defaultLog = console.log.bind(console);
console.logs = [];
console.log = function(){
    // default &  console.log()
    console.defaultLog.apply(console, arguments);
    // new & array data
    console.logs.push(Array.from(arguments));
}

错误

console.defaultError = console.error.bind(console);
console.errors = [];
console.error = function(){
    // default &  console.error()
    console.defaultError.apply(console, arguments);
    // new & array data
    console.errors.push(Array.from(arguments));
}

警告

console.defaultWarn = console.warn.bind(console);
console.warns = [];
console.warn = function(){
    // default &  console.warn()
    console.defaultWarn.apply(console, arguments);
    // new & array data
    console.warns.push(Array.from(arguments));
}

调试

console.defaultDebug = console.debug.bind(console);
console.debugs = [];
console.debug = function(){
    // default &  console.debug()
    console.defaultDebug.apply(console, arguments);
    // new & array data
    console.debugs.push(Array.from(arguments));
}