Existe-t-il un moyen d'exporter les messages enregistrés dans la console javascript dans Google Chrome? Si non, quelqu'un peut-il suggérer un bon moyen de diagnostiquer les problèmes de javascript sur la machine d'un client? Je n'ai pas été en mesure de reproduire les problèmes localement, malgré la mise en place d'un environnement identique.Exporter le journal de la console Javascript depuis Google Chrome
Répondre
Étape 1: Ajouter un groupe d'états CONSOLE.LOG qui aident à diagnostiquer votre problème
Étape 2: Ajouter une logique de redéfinir console.log sur le système de votre client afin qu'il enregistre effectivement ses arguments à la fenêtre .log (ou autre) au lieu de les journaliser sur la console.
window.log = []
console = console || {"log":function(x) {window.log.push(x);}}
Étape 3: Ajoutez un gestionnaire d'onUnload qui se déclenche d'une requête AJAX à votre serveur avec le contenu de window.log comme l'un de ses paramètres
Étape 4: Profit! ;-)
Un bonus supplémentaire à ce système est que (une fois que vous l'avez installé), vous pouvez utiliser console.log indistinctement, et si vous êtes dans votre environnement de développement ou votre environnement en direct, il fera la bonne chose.
Vous pouvez utiliser ma bibliothèque de journalisation JavaScript, log4javascript. Vous devrez:
- Mettre en place log4javascript pour envoyer des messages de journalisation au serveur en utilisant AjaxAppender (voir le quick start guide, près du fond)
- Ajouter appels diagraphie à votre JavaScript
- Collect messages de journalisation sur le serveur en utilisant votre technologie de choix
Voici une version légèrement plus courte/plus simple de ma réponse précédente. Pour simplifier les choses, nous allons simplement faire un appel AJAX sur chaque journal, et pour simplifier les choses, nous utiliserons jQuery pour effectuer le «gros travail». (Si vous utilisez une bibliothèque JS autre que jQuery, elle devrait avoir une sorte de méthode similaire, sinon, ou si vous n'utilisez pas une bibliothèque JS ... le temps pour sérieusement considérez jQuery!) Oh, et nous ' J'introduirai du pseudo-code côté serveur pour montrer à quel point cette partie de l'équation est facile.
Étape 1: Ajouter un groupe d'états CONSOLE.LOG qui aident à diagnostiquer votre problème
Étape 2: Ajouter une logique de redéfinir console.log sur le système de votre client afin qu'il envoie le journal à votre serveur s'il n'y a pas de console
var SERVER_URL = "www.yourServer.com/ajaxLogger.jsp";
var ajaxConsole = {"log":function(x) {
$.get(SERVER_URL, {"log":x});
}}
console = console || ajaxConsole; // If there is no console, use the AJAX one
Étape 3: Créer une page d'enregistrement sur votre serveur
L'exemple suivant utilise pseudo-code, puisque tout le monde a une autre langue côté serveur:
String log = pageParameters["log"];
Database.execute("INSERT INTO yourLogTable (log, date) VALUES ('" +
dbEscape(log) +"', current date)");
Il existe un outil open-source qui vous permet d'enregistrer toutes les sorties console.log
dans un fichier sur votre serveur - JS LogFlush (plug!).
JS LogFlush est une solution de journalisation JavaScript intégrée qui inclut:
- remplacement de l'interface utilisateur-moins cross-browser de console.log - côté client.
- système de stockage de journaux - côté serveur.
- 1. comment exporter (imprimer) un OSDictionary vers la console/le journal?
- 2. Journal de la console javascript simple (FireFox)
- 3. javascript XSL google chrome
- 4. Intercepter le trafic http vers/depuis Google Chrome
- 5. selectedIndex - javascript sur Google Chrome
- 6. safari et chrome javascript console multiligne
- 7. Google Chrome affiche l'erreur de sécurité javascript
- 8. Test des instructions jQuery dans la console JavaScript Chrome
- 9. lecture int depuis la console
- 10. Google Chrome Javascript Debugger et Scripts de contenu
- 11. JavaScript ne fonctionne pas dans Google Chrome
- 12. Exécution de java depuis la console
- 13. Accès à la touche Supprimer dans Google Chrome via JavaScript
- 14. l'alternative de chrome pour la console d'évaluation de firebug?
- 15. comment consoler avec google chrome
- 16. Pouvez-vous utiliser la console distante de VMWare dans Google Chrome?
- 17. La détection des erreurs JavaScript dans Chrome
- 18. comment afficher la variable locale portée dans la console javascript de chrome
- 19. Erlang: utiliser include depuis la console?
- 20. Comment lire depuis la console dans MATLAB?
- 21. Application de bureau en Javascript/CSS/HTML pour Google Chrome
- 22. Charger le javascript via la console Firebug
- 23. Javascript pour la modification de style CSS dans le navigateur Google Chrome
- 24. Web Design pour Google Chrome
- 25. Trouver la fuite de Javascript dans Chrome
- 26. Comment obtenir une référence au nœud dans l'arborescence DOM dans la console du débogueur Google Chrome
- 27. un auditeur d'événement Google Chrome chrome
- 28. obtenir zindex javascript chrome
- 29. SwfObject et Google Chrome
- 30. Google Chrome: API de recherche?
post-scriptum Tous les navigateurs ne prennent pas en charge onUnload; Si ce n'est pas le cas de votre client, vous voudrez probablement déclencher les appels AJAX sur chaque console.log à la place (ou utiliser window.setInterval pour "scruter" window.log fréquemment). – machineghost
Intéressant et délicat .. mais semble compliqué! (en particulier l'étape 3) N'y a-t-il pas un moyen plus facile de le faire ..? – Dexter
C'est vraiment très simple, mais juste pour essayer de montrer que j'ai ajouté une deuxième réponse. – machineghost