Подтвердить что ты не робот

Как читать с консоли Chrome в JavaScript

Я хотел бы добавить кнопку в свое приложение, где, если вы нажмете ее, она получит содержимое всего, что было написано на консоли, и отправьте мне по электронной почте (для сообщения об ошибках). Я знаю, что могу поддерживать переменную, и каждый раз, когда я делаю console.log, также добавляю сообщение к этой переменной, но я стараюсь, чтобы потребление памяти в приложении было низким, поэтому было бы гораздо эффективнее просто захватить его из консоли.

Есть ли способ получить сообщения консоли из javascript?

Спасибо

4b9b3361

Ответ 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?

Как читать с консоли Chrome на JavaScript

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));
}

Ответ 3

Я использовал этот код в прошлом, чтобы записывать все действия консоли и сохранять его с типами и временными console.everything в console.everything для отправки обратно на сервер для диагностики проблем ввода данных формы. Я запускаю этот код как можно раньше в элементе <head>.

if (console.everything === undefined)
{
    console.everything = [];

    console.defaultLog = console.log.bind(console);
    console.log = function(){
        console.everything.push({"type":"log", "datetime":Date().toLocaleString(), "value":Array.from(arguments)});
        console.defaultLog.apply(console, arguments);
    }
    console.defaultError = console.error.bind(console);
    console.error = function(){
        console.everything.push({"type":"error", "datetime":Date().toLocaleString(), "value":Array.from(arguments)});
        console.defaultError.apply(console, arguments);
    }
    console.defaultWarn = console.warn.bind(console);
    console.warn = function(){
        console.everything.push({"type":"warn", "datetime":Date().toLocaleString(), "value":Array.from(arguments)});
        console.defaultWarn.apply(console, arguments);
    }
    console.defaultDebug = console.debug.bind(console);
    console.debug = function(){
        console.everything.push({"type":"debug", "datetime":Date().toLocaleString(), "value":Array.from(arguments)});
        console.defaultDebug.apply(console, arguments);
    }
}