Je voudrais mettre un bouton dans mon application où si vous appuyez dessus, il obtiendra le contenu de tout ce qui a été écrit sur la console et m'envoie un e-mail (pour signaler des bugs). Je sais que je peux garder une variable et à chaque fois que je fais une console.log, j'ajoute également le message à cette variable, mais j'essaie de garder la consommation de mémoire de l'application faible, il serait donc beaucoup plus efficace de la récupérer dans le console.
Existe-t-il un moyen de récupérer les messages de la console à partir de javascript?
Merci
Tu ne peux pas. Le contenu de la console ne peut pas être lu à partir de JavaScript.
Ce que vous pouvez faire, c'est accrocher le console.log
fonction pour que vous stockiez quand il se connecte:
console.stdlog = console.log.bind(console);
console.logs = [];
console.log = function(){
console.logs.Push(Array.from(arguments));
console.stdlog.apply(console, arguments);
}
console.logs
contient tout ce qui a été enregistré. Vous pouvez le nettoyer à tout moment en faisant console.logs.length = 0;
.
Vous pouvez toujours créer un journal standard, sans stockage, en appelant console.stdlog
.
comment lire l'erreur de la console du navigateur dans js?
Comment lire à partir de la console de Chrome en 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));
}
J'ai utilisé ce code dans le passé pour capturer toute l'activité de la console et le stocker avec les types et horodatages dans console.everything
pour le renvoyer au serveur pour diagnostiquer les problèmes de saisie des données du formulaire. J'exécute ce code le plus tôt possible dans le <head>
élément.
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);
}
}