Qual é a vantagem de usar console.log
vs console.info
? Ou qualquer um dos outros comandos do console para esse assunto?
console.info("info");
console.error("error");
console.warn("warn");
vs
console.log("log");
Achei que isso pudesse mudar a cor da saída ou concatenar algum tipo de rótulo, mas parece que todos fazem a mesma coisa. E de acordo com a documentação aqui:
https://nodejs.org/api/console.html#console_console_info_data
eles parecem fazer o mesmo que console.log
javascript
node.js
terminal
console
Seantomburke
fonte
fonte
Respostas:
De acordo com a documentação que você vinculou
console.error
e asconsole.warn
saídas parastderr
. Os outros enviam parastdout
.Se você está fazendo tubulação ou redirecionamento a partir
node.js
da diferença é importante.Há muito JavaScript escrito para rodar no navegador e
Node.js
. Ter o nó implementar o console completo permite maior compatibilidade cruzada de código.Na maioria dos navegadores, esses log não apenas em cores diferentes, mas você também pode filtrar para ver mensagens específicas.
console.info("info"); console.error("error"); console.warn("warn"); console.log("log");
fonte
node
(8.11.4
) e Chrome 67, há tambémconsole.debug
(e provavelmente versões anteriores também).debug
classifica abaixolog
.console.log()
é mais curto queconsole.info()
Eles são a mesma coisa, e essa é a única vantagem.
fonte
Embora
console.log
econsole.info
possam não ser diferentes, existem outros usos, exceto mera coloração. Por exemplo, ao usar um linter como o eslint, você pode configurarconsole.log
para fornecer uma mensagem de aviso. Digamos que você deseja usar apenasconsole.log
para fins de desenvolvimento e usarconsole.info
para informações de que os usuários finais podem precisar. Com um linter agora você tem um lembrete visível e direto de seu temporárioconsole.log
que o ajuda durante o desenvolvimento, mas deve ser removido antes de commits / publicar.fonte
De acordo com os documentos , é bastante claro.
Isso significa que não há benefício ou desvantagem.
info
==log
ewarn
==error
. A menos que você deseja imprimirstderr
,info
e oulog
vai funcionar.fonte
Visualmente, nenhuma diferença realmente entre
console.log
,console.info
,console.warn
, bem comoconsole.error
sobre o lado do servidor (terminal) .No entanto, existem módulos leves que agregam azul, laranja e tons de vermelho para
console.info
,console.warn
, bem comoconsole.error
, respectivamente. Por isso, a API do console se comporta como do lado do cliente.npm i console-info console-warn console-error --save-dev;
fonte
Mais um detalhe além da resposta aceita: no Chrome e no FireFox,
console.info
as linhas de registro são prefixadas com um pequeno ícone i , enquanto asconsole.log
linhas não.warn
e aserror
linhas são prefixadas com um pequeno triângulo ex , respectivamente.fonte
stdin Um fluxo legível para ler a entrada do usuário.
stdout Um fluxo gravável, de forma síncrona ou assíncrona.
stderr Um fluxo de bloqueio gravável síncrono destinado a mensagens de erro.
As funções stdout ou sem bloqueio são: console.log, console.info, util.puts, util.print e Stderr.
As funções de bloqueio são: console.warn, console.error, util.debug e process.stdin (um fluxo legível para obter a entrada do usuário).
fonte
Foi estabelecido que log e informações são basicamente a mesma coisa, mas não tenho certeza se isso responde completamente à pergunta:
Um benefício, além do que já foi mencionado, é que você pode usar cada um para um propósito diferente. Por exemplo, você pode usar console.log apenas para depurar rapidamente e enviar informações para o console, enquanto pode usar console.info para mensagens permanentes que deseja enviar para o console em seu código, como informações sobre o status atual do aplicativo . Então, quando você tem uma situação em que um objeto aleatório é impresso em seu console e você percebe que deixou uma declaração de log lá em algum lugar por acidente, você pode fazer uma pesquisa global por 'console.log' e excluir todas as instâncias e ter confiança você não excluiu nada importante que pretendia deixar lá.
fonte
Os diferentes níveis de registro permitem que você gerencie o nível de ruído em seu console: Tanto no Firefox (estou usando 78 agora) quanto no Chrome (84), o console js permite que você escolha o "nível de depuração" de saída que deseja Vejo. FF permite alternar a visibilidade
console.error
,.warn
,.log
,.info
, e.debug
mensagens, clicando nos botões individuais para cada (que mostram quantos foram suprimidos, quando "off"), enquanto o Chrome tem uma lista suspensa com marcas de seleção ao lado dos itens (.info
e.log
são controlados por o "Info" e.debug
por "Detalhado"). O rótulo suspenso do Chrome ("Todos os níveis" ou o que você definir) ficará vermelho se a saída for suprimida.fonte
Eu vi onde
console.log
está o registro temporário de informações de estado para depuração.console.info
é uma coisa mais permanente - como dizer em qual porta algo está sendo executado e algo que você não cortaria depois de terminar a depuração.Isso torna mais fácil limpar seu código para confirmá-lo. Você pode até mesmo fazer com que seu linter tenha uma regra para impedir que console.log seja confirmado.
fonte