Was ist der Vorteil von console.log
vs console.info
? Oder einer der anderen Konsolenbefehle?
console.info("info");
console.error("error");
console.warn("warn");
vs.
console.log("log");
Ich dachte, es könnte die Farbe der Ausgabe ändern oder eine Art Etikett verketten, aber sie scheinen alle dasselbe zu tun. Und laut Dokumentation hier:
https://nodejs.org/api/console.html#console_console_info_data
sie scheinen alle dasselbe zu tun wie console.log
javascript
node.js
terminal
console
seantomburke
quelle
quelle
Antworten:
Gemäß der Dokumentation, mit der Sie verknüpft sind
console.error
und zu der Sieconsole.warn
ausgegeben habenstderr
. Die anderen geben an ausstdout
.Wenn Sie Rohrleitungen oder Umleitungen von
node.js
der Differenz durchführen, ist dies wichtig.Es ist viel JavaScript geschrieben, um sowohl im Browser als auch im Browser ausgeführt zu werden
Node.js
. Wenn der Knoten die vollständige Konsole implementiert, wird eine größere Code-Kreuzkompatibilität ermöglicht.In den meisten Browsern werden diese nicht nur in verschiedenen Farben protokolliert, sondern Sie können auch filtern, um bestimmte Nachrichten anzuzeigen.
console.info("info"); console.error("error"); console.warn("warn"); console.log("log");
quelle
node
(8.11.4
) und Chrome 67 gibt es auchconsole.debug
(und wahrscheinlich auch frühere Versionen).debug
rangiert darunterlog
.console.log()
ist kürzer alsconsole.info()
Sie sind dasselbe, und das ist der einzige Vorteil.
quelle
Während
console.log
undconsole.info
möglicherweise nicht anders, gibt es andere Verwendungszwecke als das bloße Färben. Wenn Sie beispielsweise einen Linter wie eslint verwenden, können Sie festlegenconsole.log
, dass eine Warnmeldung angezeigt wird . Angenommen, Sie möchten nurconsole.log
für Ihre Entwicklungszwecke undconsole.info
für Informationen verwenden, die Endbenutzer möglicherweise benötigen. Mit einem Linter haben Sie jetzt eine sichtbare und direkte Erinnerung an Ihre temporäreconsole.log
Datei, die Sie bei der Entwicklung unterstützt, aber vor dem Festschreiben / Veröffentlichen entfernt werden muss.quelle
Laut den Dokumenten ist es ziemlich klar.
Dies bedeutet, dass es keinen Vorteil oder Nachteil gibt.
info
==log
undwarn
==error
. Es sei denn , Sie drucken möchtenstderr
,info
und oderlog
arbeiten werden .quelle
Optisch kein Unterschied tatsächlich unter
console.log
,console.info
,console.warn
sowie inconsole.error
Bezug auf die Server - Seite (Terminal) .Allerdings gibt es leichte Module , die addieren blau, orange und rote Farben für
console.info
,console.warn
sowieconsole.error
jeweils. Auf diese Weise verhält sich die Konsolen-API wie clientseitig.npm i console-info console-warn console-error --save-dev;
quelle
Ein weiteres Detail zusätzlich zu der akzeptierten Antwort: In Chrome und FireFox wird den
console.info
Protokollzeilen ein kleines i- Symbol vorangestellt, während dies bei denconsole.log
Zeilen nicht der Fall ist .warn
underror
Linien wird ein kleines Dreieck bzw. x vorangestellt .quelle
stdin Ein lesbarer Stream zum Lesen von Benutzereingaben.
stdout Ein beschreibbarer Stream, entweder synchron oder asynchron.
stderr Ein blockierender synchroner beschreibbarer Stream für Fehlermeldungen.
Die stdout- oder nicht blockierenden Funktionen sind: console.log, console.info, util.puts, util.print und Stderr.
Die blockierenden Funktionen sind: console.warn, console.error, util.debug und process.stdin (ein lesbarer Stream zum Abrufen von Benutzereingaben).
quelle
Es wurde festgestellt, dass Protokoll und Informationen im Grunde dasselbe sind, aber ich bin mir nicht sicher, ob dies die Frage vollständig beantwortet:
Ein Vorteil, abgesehen von dem, was bereits erwähnt wurde, ist, dass Sie jedes für einen anderen Zweck verwenden können. Beispielsweise können Sie console.log nur zum schnellen Debuggen und Ausspucken von Dingen an die Konsole verwenden, während Sie console.info für permanente Nachrichten verwenden können, die Sie in Ihrem Code an die Konsole ausgeben möchten, z. B. Informationen zum aktuellen App-Status . Wenn Sie dann eine Situation haben, in der ein zufälliges Objekt in Ihrer Konsole gedruckt wird und Sie versehentlich irgendwo eine Protokollanweisung hinterlassen haben, können Sie eine globale Suche nach 'console.log' durchführen, jede Instanz löschen und Vertrauen haben Sie haben nichts Wichtiges gelöscht, das Sie dort belassen wollten.
quelle
Mit den verschiedenen Protokollierungsstufen können Sie den Geräuschpegel in Ihrer Konsole verwalten: In den Devtools Firefox (ich verwende derzeit 78) und Chrome (84) können Sie mit der js-Konsole auswählen, welche "Debug-Stufe" der Ausgabe Sie möchten sehen. FF können Sie die Sichtbarkeit umschalten
console.error
,.warn
,.log
,.info
, und.debug
Nachrichten für jede einzelne Tasten klicken (die Ihnen zeigen , wie viele wurden unterdrückt, wenn „off“), während Chrome ein Dropdown mit Häkchen neben den Elementen hat (.info
und.log
werden durch die "Info" und.debug
von "Verbose"). Das Chrome-Dropdown-Label ("Alle Ebenen" oder was auch immer Sie einstellen) wird rot, wenn die Ausgabe unterdrückt wurde.quelle
Ich habe gesehen, wo
console.log
für die vorübergehende Protokollierung von Statusinformationen zum Debuggen ist.console.info
ist eine dauerhaftere Sache - zum Beispiel zu sagen, auf welchem Port etwas läuft und was Sie nach dem Debuggen nicht ausschneiden würden.Dies macht es einfach, Ihren Code für das Festschreiben zu bereinigen. Sie können sogar festlegen, dass Ihr Linter eine Regel hat, die verhindert, dass console.log festgeschrieben wird.
quelle