Node.js console.log与console.info

问题描述 投票:58回答:7

使用console.logconsole.info有什么好处?或者其他任何控制台命令?

console.info("info");
console.error("error");
console.warn("warn");

VS

console.log("log");

我认为它可能会改变输出的颜色或连接某种标签,但它们似乎都做同样的事情。根据这里的文档:

https://nodejs.org/api/console.html#console_console_info_data

他们似乎都和console.log一样

javascript node.js terminal console
7个回答
58
投票

根据您链接的文档,console.errorconsole.warn输出到stderr。其他人输出到stdout

如果你正在从node.js进行管道或重定向,差异很重要。

编写了很多JavaScript以在浏览器和Node.js中运行。让节点实现完整控制台可以实现更高的代码交叉兼容性。

在大多数浏览器中,不仅可以使用不同的颜色登录,还可以过滤以查看特定的消息。

console.info("info");
console.error("error");
console.warn("warn");
console.log("log");

47
投票

console.log()比console.info()短

它们是同一个东西,这是唯一的优势


20
投票

根据docs,它很清楚。

console.info([data],[...])#与console.log相同。

console.error([data],[...])#与console.log相同,但打印到stderr。

console.warn([data],[...])#与console.error相同。

这意味着没有任何好处或缺点。 info == log,和warn == error。除非您想要打印到stderrinfo和/或log才有效。


14
投票

在视觉上,console.logconsole.infoconsole.warn以及console.error在服务器端(终端)之间没有差别。

然而,有lightweight modules分别为console.infoconsole.warn以及console.error添加蓝色,橙色和红色。这样,控制台API的行为就像客户端一样。

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

enter image description here


12
投票

虽然console.log和console.info可能没有什么不同,但除了着色之外还有其他用途。例如,当使用像eslint这样的linter时,可以设置console.log来提供警告消息。假设您只想将console.log用于开发目的,并使用console.info获取最终用户可能需要的信息。通过linter,您现在可以直观地提醒您在开发期间帮助您的临时console.logs,但必须在提交/发布之前将其删除。


7
投票

除了接受的答案之外还有一个细节:在Chrome和FireFox中,console.info日志行以小i图标为前缀,而console.log行则不是。 warnerror线分别以小三角形和x为前缀。


0
投票

stdin用于读取用户输入的可读流。

stdout可写流,可以同步或异步。

stderr用于错误消息的阻塞同步可写流。

stdout或非阻塞函数是:console.log,console.info,util.puts,util.print和Stderr。

阻塞功能包括:console.warn,console.error,util.debug和process.stdin(用于获取用户输入的可读流)。

© www.soinside.com 2019 - 2024. All rights reserved.