Quel est l'avantage d'utiliser console.log
vs console.info
? Ou l'une des autres commandes de la console d'ailleurs?
console.info("info");
console.error("error");
console.warn("warn");
contre
console.log("log");
Je pensais que cela pourrait changer la couleur de la sortie ou concaténer une sorte d'étiquette, mais ils semblent tous faire la même chose. Et selon la documentation ici:
https://nodejs.org/api/console.html#console_console_info_data
ils semblent tous faire la même chose que console.log
javascript
node.js
terminal
console
seantomburke
la source
la source
Réponses:
Selon la documentation à laquelle vous avez lié
console.error
et lesconsole.warn
sortiesstderr
. Les autres sortent versstdout
.Si vous effectuez une tuyauterie ou une redirection depuis
node.js
la différence est importante.Il y a beaucoup de JavaScript écrit pour s'exécuter à la fois dans le navigateur et
Node.js
. Le fait que le nœud implémente la console complète permet une plus grande compatibilité croisée du code.Dans la plupart des navigateurs, non seulement ils se connectent dans des couleurs différentes, mais vous pouvez également filtrer pour voir des messages spécifiques.
console.info("info"); console.error("error"); console.warn("warn"); console.log("log");
la source
node
(8.11.4
) et Chrome 67, il y a aussiconsole.debug
(et très probablement des versions antérieures aussi).debug
se classe ci-dessouslog
.console.log()
est plus court queconsole.info()
C'est la même chose et c'est le seul avantage.
la source
Bien que
console.log
etconsole.info
ne soit pas différent, il existe d'autres utilisations, à l'exception de la simple coloration. Par exemple, lorsque vous utilisez un linter comme eslint, vous pouvez définirconsole.log
pour fournir un message d'avertissement. Supposons que vous souhaitiez utiliser uniquement àconsole.log
des fins de développement et utiliserconsole.info
pour les informations dont les utilisateurs finaux pourraient avoir besoin. Avec un linter, vous avez maintenant un rappel visible et direct de votre temporaireconsole.log
qui vous aide pendant le développement, mais doit être supprimé avant les validations / publication.la source
D'après la documentation, c'est assez clair.
Cela signifie qu'il n'y a aucun avantage ou inconvénient.
info
==log
etwarn
==error
. À moins que vous souhaitez imprimerstderr
,info
et oulog
fonctionnera.la source
Visuellement, la différence entre Non , en fait
console.log
,console.info
,console.warn
ainsi queconsole.error
concernant le côté serveur (terminal) .Cependant, il existe des modules légers qui ajoutent des couleurs bleu, orange et rouge pour
console.info
,console.warn
ainsi queconsole.error
respectivement. Par cela, l'API de la console se comporte comme côté client.npm i console-info console-warn console-error --save-dev;
la source
Un autre détail en plus de la réponse acceptée: dans Chrome et FireFox,
console.info
les lignes de journal sont précédées d'une petite icône i alors que lesconsole.log
lignes ne le sont pas.warn
et leserror
lignes sont précédées d'un petit triangle et x , respectivement.la source
stdin Un flux lisible pour lire l'entrée de l'utilisateur.
stdout Un flux accessible en écriture, de manière synchrone ou asynchrone.
stderr Un flux inscriptible synchrone bloquant destiné aux messages d'erreur.
Le stdout ou non bloquant sont: console.log, console.info, util.puts, util.print et Stderr.
Les fonctions de blocage sont: console.warn, console.error, util.debug et process.stdin (un flux lisible pour obtenir les entrées de l'utilisateur).
la source
Il a été établi que le journal et les informations sont fondamentalement la même chose, mais je ne suis pas sûr que cela réponde complètement à la question:
Un avantage, outre ce qui a déjà été mentionné, est que vous pouvez utiliser chacun d'eux dans un but différent. Par exemple, vous pouvez utiliser console.log uniquement pour un débogage rapide et cracher des choses sur la console, tandis que vous pouvez utiliser console.info pour les messages permanents que vous souhaitez afficher dans la console dans votre code, tels que des informations sur l'état actuel de l'application. . Ensuite, lorsque vous avez une situation où un objet aléatoire est imprimé dans votre console et que vous vous rendez compte que vous avez laissé une instruction de journal quelque part par accident, vous pouvez effectuer une recherche globale pour 'console.log' et supprimer chaque instance et avoir confiance vous n'avez rien supprimé d'important que vous vouliez y laisser.
la source
Les différents niveaux de journalisation vous permettent de gérer le niveau de bruit dans votre console: dans les devtools Firefox (j'utilise 78 en ce moment) et Chrome (84), la console js vous permet de choisir le "niveau de débogage" de la sortie que vous souhaitez voir. FF vous permet de basculer la visibilité de
console.error
,.warn
,.log
,.info
et.debug
pour chaque (qui vous montrent combien ont été supprimées, quand « off ») messages en cliquant sur les boutons individuels, tandis que Chrome a un menu déroulant avec coches à côté des éléments (.info
et.log
sont contrôlés par celui "Info", et.debug
par "Verbose"). Le libellé de la liste déroulante Chrome ("Tous les niveaux" ou ce que vous avez défini) devient rouge si la sortie a été supprimée.la source
J'ai vu où se
console.log
trouve la journalisation temporaire des informations d'état pour le débogage.console.info
est une chose plus permanente - comme dire sur quel port quelque chose est en cours d'exécution, et quelque chose que vous ne couperiez pas après avoir terminé le débogage.Cela facilite le nettoyage de votre code pour le valider. Vous pouvez même faire en sorte que votre linter ait une règle pour empêcher la validation de console.log.
la source