¿Cuál es el beneficio de usar console.log
vs console.info
? ¿O cualquiera de los otros comandos de la consola para el caso?
console.info("info");
console.error("error");
console.warn("warn");
vs
console.log("log");
Pensé que podría cambiar el color de la salida o concatenar algún tipo de etiqueta, pero parece que todos hacen lo mismo. Y de acuerdo con la documentación aquí:
https://nodejs.org/api/console.html#console_console_info_data
parece que todos hacen lo mismo que console.log
javascript
node.js
terminal
console
seantomburke
fuente
fuente
Respuestas:
Según la documentación a la que vinculó
console.error
y losconsole.warn
resultadosstderr
. Los demás salen astdout
.Si está haciendo canalizaciones o redireccionamientos desde
node.js
la diferencia es importante.Hay mucho JavaScript escrito para ejecutarse tanto en el navegador como en
Node.js
. Hacer que el nodo implemente la consola completa permite una mayor compatibilidad cruzada de código.En la mayoría de los navegadores, no solo se registran en diferentes colores, sino que también puede filtrar para ver mensajes específicos.
console.info("info"); console.error("error"); console.warn("warn"); console.log("log");
fuente
node
(8.11.4
) y Chrome 67, también hayconsole.debug
(y muy probablemente también versiones anteriores).debug
rangos debajolog
.console.log()
es más corto queconsole.info()
Son lo mismo y esa es la única ventaja.
fuente
Si bien
console.log
yconsole.info
puede que no sea diferente, existen otros usos, excepto la mera coloración. Por ejemplo, cuando usa un linter como eslint, puede configurarconsole.log
para proporcionar un mensaje de advertencia. Supongamos que solo desea utilizarloconsole.log
con fines de desarrollo y utilizarloconsole.info
para la información que los usuarios finales puedan necesitar. Con un linter, ahora tiene un recordatorio visible y directo de su temporalconsole.log
que lo ayuda durante el desarrollo, pero debe eliminarse antes de la confirmación / publicación.fuente
Según los documentos , está bastante claro.
Esto significa que no hay ventajas ni desventajas.
info
==log
ywarn
==error
. A menos que desee imprimirstderr
,info
olog
funcionará.fuente
Visualmente, no hay diferencia entre realidad
console.log
,console.info
,console.warn
, así comoconsole.error
en relación con el lado del servidor (terminal) .Sin embargo, hay módulos livianos que agregan colores azul, naranja y rojo para
console.info
,console.warn
así comoconsole.error
respectivamente. Por eso, la API de la consola se comporta como del lado del cliente.npm i console-info console-warn console-error --save-dev;
fuente
Un detalle más además de la respuesta aceptada: en Chrome y FireFox, las
console.info
líneas de registro tienen como prefijo un pequeño ícono de i , mientras que lasconsole.log
líneas no.warn
y laserror
líneas tienen como prefijo un pequeño triángulo y una x , respectivamente.fuente
stdin Una secuencia legible para leer la entrada del usuario.
stdout Una secuencia de escritura, ya sea de forma sincrónica o asincrónica.
stderr Un flujo de escritura sincrónico de bloqueo destinado a mensajes de error.
Las funciones stdout o sin bloqueo son: console.log, console.info, util.puts, util.print y Stderr.
Las funciones de bloqueo son: console.warn, console.error, util.debug y process.stdin (una secuencia legible para obtener la entrada del usuario).
fuente
Se ha establecido que el registro y la información son básicamente lo mismo, pero no estoy seguro de que responda completamente a la pregunta:
Un beneficio, además de lo que ya se ha mencionado, es que puede usar cada uno para un propósito diferente. Por ejemplo, puede usar console.log solo para depurar rápidamente y escupir cosas en la consola, mientras que puede usar console.info para los mensajes permanentes que desea enviar a la consola en su código, como información sobre el estado actual de la aplicación . Luego, cuando tenga una situación en la que se imprima un objeto aleatorio en su consola y se dé cuenta de que ha dejado una declaración de registro en algún lugar por accidente, puede hacer una búsqueda global de 'console.log' y eliminar cada instancia y tener confianza no eliminó nada importante que pretendía dejar allí.
fuente
Los diferentes niveles de registro le permiten administrar el nivel de ruido en su consola: tanto en las herramientas de desarrollo de Firefox (estoy usando 78 en este momento) como en Chrome (84), la consola js le permite elegir qué "nivel de depuración" de salida desea ver. FF le permite alternar la visibilidad de
console.error
,.warn
,.log
,.info
, y.debug
los mensajes haciendo clic en botones individuales para cada uno (que muestran cuántos fueron suprimidos, cuando "off"), mientras que Chrome tiene un desplegable con marcas de verificación junto a los artículos (.info
y.log
son controlados por el "Info", y.debug
por "Verbose"). La etiqueta desplegable de Chrome ("Todos los niveles" o lo que establezca) se vuelve roja si se suprimió la salida.fuente
He visto dónde
console.log
está el registro temporal de información de estado para depurar.console.info
es algo más permanente, como decir en qué puerto se está ejecutando algo y algo que no cortaría una vez que haya terminado de depurar.Esto facilita la limpieza de su código para confirmarlo. Incluso puede hacer que su linter tenga una regla para evitar que se confirme console.log.
fuente