Как читать с консоли Chrome в JavaScript
Я хотел бы добавить кнопку в свое приложение, где, если вы нажмете ее, она получит содержимое всего, что было написано на консоли, и отправьте мне по электронной почте (для сообщения об ошибках). Я знаю, что могу поддерживать переменную, и каждый раз, когда я делаю console.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?
Как читать с консоли 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);
}
}