Comment imprimer un message sur la console d'erreur, en incluant de préférence une variable?
Par exemple, quelque chose comme:
print('x=%d', x);
javascript
debugging
Mark Harrison
la source
la source
Réponses:
Installez Firebug puis vous pouvez utiliser
console.log(...)
etconsole.debug(...)
, etc. (voir la documentation pour plus).la source
console.log()
etc devrait fonctionner dans tous les navigateurs, y compris IE. Cependant, dans tous les cas, vous devez avoir la fenêtre du débogueur ouverte à ce moment, sinon les appels àconsole
généreront des erreurs.Vous pouvez également ajouter du CSS à vos messages de journalisation:
la source
console.log
vous pouvez utiliser css à l'intérieur de la console: |Les exceptions sont enregistrées dans la console JavaScript. Vous pouvez l'utiliser si vous souhaitez garder Firebug désactivé.
Usage:
la source
throw
doit être emballé dans unsetTimeout
?Une bonne façon de faire cela qui fonctionne sur plusieurs navigateurs est décrite dans Débogage JavaScript: Jetez vos alertes! .
la source
throw()
n'est certainement pas la façon de procéder. vous aurez des ennuis tôt ou tard. pour moi c'était plus tôt :(Voici une solution à la question littérale de savoir comment imprimer un message sur la console d'erreur du navigateur, pas sur la console de débogage. (Il peut y avoir de bonnes raisons de contourner le débogueur.)
Comme je l'ai noté dans les commentaires sur la suggestion de lancer une erreur pour obtenir un message dans la console d'erreur, un problème est que cela interrompra le thread d'exécution. Si vous ne voulez pas interrompre le thread, vous pouvez jeter l'erreur dans un thread séparé, créé à l'aide de setTimeout. D'où ma solution (qui se révèle être une élaboration de celle d'Ivo Danihelka):
J'inclus le temps en millisecondes depuis l'heure de début car le délai d'attente pourrait fausser l'ordre dans lequel vous pourriez vous attendre à voir les messages.
Le deuxième argument de la méthode Error concerne le nom de fichier, qui est une chaîne vide ici pour empêcher la sortie du nom de fichier et du numéro de ligne inutiles. Il est possible d'obtenir la fonction appelant mais pas de manière indépendante du navigateur.
Ce serait bien si nous pouvions afficher le message avec une icône d'avertissement ou de message au lieu de l'icône d'erreur, mais je ne trouve pas de moyen de le faire.
Un autre problème avec l'utilisation de lancer est qu'il pourrait être attrapé et jeté par un try-catch enfermant, et placer le lancer dans un fil séparé évite également cet obstacle. Cependant, il existe un autre moyen de détecter l'erreur, à savoir si le gestionnaire window.onerror est remplacé par un gestionnaire qui fait quelque chose de différent. Je ne peux pas vous y aider.
la source
Si vous utilisez Safari , vous pouvez écrire
et il apparaît directement sur la console du navigateur.
la source
console.log()
.console.log()
. Ce n'était pas vrai jusqu'à récemment.Pour réellement répondre à la question:
Au lieu d'erreur, vous pouvez également utiliser info, log ou warn.
la source
console.error(..)
s'agit d'une fonctionnalité non standard et ne doit pas être utilisée en production. Quelle est votre opinion à ce sujet? Avez-vous des suggestions pour un programmeur novice utilisantconsole.error
vsconsole.log
?console.log(...)
"non standard". À cet égard,console.error
est aussi stable queconsole.log
.Si vous utilisez Firebug et devez également prendre en charge IE, Safari ou Opera, Firebug Lite ajoute la prise en charge de console.log () à ces navigateurs.
la source
Le WebKit Web inspecteur prend également en charge de Firebug API de la console (juste un ajout mineur à la réponse de Dan ).
la source
Une note sur 'throw ()' mentionnée ci-dessus. Il semble que cela arrête complètement l'exécution de la page (j'ai vérifié dans IE8), donc ce n'est pas très utile pour se connecter "sur les processus en cours" (comme pour suivre une certaine variable ...)
Ma suggestion est peut-être d'ajouter un élément textarea quelque part dans votre document et de changer (ou d'ajouter) sa valeur (ce qui changerait son texte) pour la journalisation des informations chaque fois que nécessaire ...
la source
console.log()
,throw()
, etc. En outre, il est faux de rien avec le comportement dethrow()
que vous semblez dire - le fait qu'il arrête l' exécution est intentionnel et documenté ( développeur. mozilla.org/en-US/docs/Web/JavaScript/Reference/… ), et cela est cohérent avec la façon dont les exceptions sont levées / interceptées dans d'autres langages de programmation. (Si vous voulez enregistrer le contenu d'une variable sans arrêter l'exécution, c'est pour çaconsole.log()
.)console.log
- donc les gens donnaient des alternatives. À propos de l'throw()
arrêt de l'exécution, bien sûr, c'est intentionnel, personne n'a dit que ce n'était pas le cas. C'est pourquoi ce n'est généralement pas un bon moyen de consigner les informations de débogage pendant l'exécution, ce que l'OP voulait ...Comme toujours, Internet Explorer est le grand éléphant des patins à roulettes qui vous empêche simplement d'utiliser
console.log()
.Le journal de jQuery peut être adapté assez facilement, mais il est difficile de l'ajouter partout. Une solution si vous utilisez jQuery consiste à le placer dans votre fichier jQuery à la fin, minifié en premier:
la source
Visitez https://developer.chrome.com/devtools/docs/console-api pour une référence complète de l'api de la console
Dans ce cas, l'objet serait votre chaîne d'erreur
la source
la source
travailler pour moi .. je recherche cela .. j'ai utilisé Firefox. voici mon script.
fonctionne dans Firefox et Chrome.
la source
La façon la plus simple de le faire est:
la source
Pour répondre à votre question, vous pouvez utiliser les fonctionnalités ES6,
la source
Cela n'imprime pas sur la console, mais vous ouvrira une fenêtre contextuelle d'alerte avec votre message qui pourrait être utile pour certains débogages:
fais juste:
la source
Avec la syntaxe es6, vous pouvez utiliser:
la source