Node.js console.log contre console.info

92

Quel est l'avantage d'utiliser console.logvs 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

seantomburke
la source
Craig Wayne
3
Quelques conseils: Vous pouvez utiliser des couleurs pour avoir une meilleure vue de: console.log ('% c Sample Text', 'color: green;'); Ou ajoutez un VAR dans le texte en utilisant: console.log (`Sample $ {variable}`, 'color: green;');
Gilberto B.Terra Jr.29
Merci, je ne savais pas que cela fonctionnait également sur le nœud js

Réponses:

81

Selon la documentation à laquelle vous avez lié console.erroret les console.warnsorties stderr. 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");
Jeremy J Starcher
la source
Merci! C'était le navigateur où il apparaît différemment. Je cherchais dans le terminal les changements de couleur.
seantomburke
2
Dans node( 8.11.4) et Chrome 67, il y a aussi console.debug(et très probablement des versions antérieures aussi). debugse classe ci-dessous log.
Marcus Junius Brutus
41

console.log() est plus court que console.info()

C'est la même chose et c'est le seul avantage.

entrez la description de l'image ici

Max
la source
65
Je suis contre parce que "c'est le seul avantage" n'est tout simplement pas vrai et assez myope. Les méthodes peuvent bien avoir exactement la même implémentation, mais elles ont une signification différente . console vous permet d'implémenter le filtrage au niveau du journal de manière simple, par exemple.
rixo le
4
console.log = stdout, while console.error = stderr
Craig Wayne
9
developer.mozilla.org/en-US/docs/Web/API/Console/info - "Dans Firefox et Chrome, une petite icône" i "s'affiche à côté de ces éléments dans le journal de la console Web" - image.ibb .co / gYrZHe / infolog.png
éd
4
@EdwardSammutAlessi J'utilise Chrome et je n'ai pas pu recréer et faire apparaître l'icône i
Chevybow
Un point de donnée: Firefox 78: affiche ⓘ (i dans un cercle) avant la sortie log.info. Chrome 84: non.
Tom Hundt le
34

Bien que console.loget console.infone 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éfinir console.logpour fournir un message d'avertissement. Supposons que vous souhaitiez utiliser uniquement à console.logdes fins de développement et utiliser console.infopour les informations dont les utilisateurs finaux pourraient avoir besoin. Avec un linter, vous avez maintenant un rappel visible et direct de votre temporaire console.logqui vous aide pendant le développement, mais doit être supprimé avant les validations / publication.

Figidon
la source
3
Je ne sais pas pourquoi j'ai trouvé cette réponse plus appropriée que toutes les autres, gentille @Figidon.
Shreyan Mehta
1
Je suis d'accord. Excellente solution à utiliser avec eslint pour les modes de développement et de production. Vous ne devez pas passer console.log! (bâton et épée à la main)
Tomas Vancoillie
26

D'après la documentation, c'est assez clair.

console.info ([data], [...]) # Identique à console.log.

console.error ([data], [...]) # Identique à console.log mais imprime sur stderr.

console.warn ([data], [...]) # Identique à console.error.

Cela signifie qu'il n'y a aucun avantage ou inconvénient. info== loget warn== error. À moins que vous souhaitez imprimer stderr, infoet ou logfonctionnera.

Sterling Archer
la source
23

Visuellement, la différence entre Non , en fait console.log, console.info, console.warnainsi que console.errorconcernant le côté serveur (terminal) .

Cependant, il existe des modules légers qui ajoutent des couleurs bleu, orange et rouge pour console.info, console.warnainsi que console.errorrespectivement. Par cela, l'API de la console se comporte comme côté client.

 npm i console-info console-warn console-error --save-dev;

entrez la description de l'image ici

Abdennour TOUMI
la source
9

Un autre détail en plus de la réponse acceptée: dans Chrome et FireFox, console.infoles lignes de journal sont précédées d'une petite icône i alors que les console.loglignes ne le sont pas. warnet les errorlignes sont précédées d'un petit triangle et x , respectivement.

Bill Hoag
la source
Comme observé ailleurs: Firefox 78: affiche ⓘ (i dans le cercle) avant la sortie log.info. Chrome 84: pas
Tom Hundt
3

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).

Avinash Maurya
la source
1

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:

Quel est l'avantage d'utiliser console.log par rapport à console.info?

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.

Dallas
la source
0

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é deconsole.error , .warn, .log, .infoet .debugpour 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 ( .infoet .logsont contrôlés par celui "Info", et .debugpar "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.

Tom Hundt
la source
0

J'ai vu où se console.logtrouve 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.

RobKohr
la source