Node.js console.log与console.info


96

使用console.logvs有console.info什么好处?还是其他任何与此相关的控制台命令?

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

console.log("log");

我以为它可能会更改输出的颜色或连接某种标签,但它们似乎都做相同的事情。并根据此处的文档:

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

他们似乎都和 console.log



3
一些提示:您可以使用颜色更好地查看:console.log('%c Sample Text','color:green;'); 或者使用以下命令在文本中添加一些VAR:console.log(`Sample $ {variable}`,'color:green;');
Gilberto B. Terra

谢谢,我不知道它也可以在节点js上工作

Answers:


83

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

如果您要进行配管或重定向,node.js那么区别就很重要。

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

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

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

谢谢!在浏览器中,它的显示方式有所不同。我在终端中寻找颜色变化。
seantomburke 2014年

2
node8.11.4)和Chrome 67中,也有console.debug(而且很可能还有早期版本)。debug排名以下log
Marcus Junius Brutus

40

console.log() 短于 console.info()

他们是同一回事,那是唯一的优势。

在此处输入图片说明


67
我之所以投票是因为“那是唯一的优势”根本不是真的,而且是短视的。这些方法可能具有完全相同的实现,但是它们具有不同的含义。通过控制台,您可以轻松实现日志级别过滤。
rixo '16

4
console.log = stdout,而console.error = stderr
Craig Wayne

9
developer.mozilla.org/zh-CN/docs/Web/API/Console/info- “在Firefox和Chrome中,Web控制台日志中这些项目旁边会显示一个小的“ i”图标” – image.ibb .co / gYrZHe / infolog.png
编辑

5
@EdwardSammutAlessi我使用的是Chrome,无法重新创建并显示i图标
chevybow

一个数据点:Firefox 78:在log.info输出之前打印ⓘ(i圈)。Chrome 84:没有。
汤姆·洪特

34

虽然console.logconsole.info可能没有什么不同,但除纯色外还有其他用途。例如,使用像lint这样的短绒棉时,您可以设置console.log提供警告消息。假设您只想将其console.log用于开发目的,并console.info用于最终用户可能需要的信息。现在,有了lint,您就可以直观地看到临时的提示,以console.log在开发过程中为您提供帮助,但是在提交/发布之前必须将其删除。


3
我不知道为什么我觉得这个答案比其他答案更合适,一个不错的@Figidon。
Shreyan Mehta

1
我同意。与eslint一起用于开发和生产模式的绝佳解决方案。您不得通过console.log!(手杖和剑)
Tomas Vancoillie

26

根据文档,这非常清楚。

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

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

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

这意味着没有好处或不利之处。info==logwarn== error。除非您要打印到stderrinfo否则log将起作用。


23

在视觉上,没有区别其实当中console.logconsole.infoconsole.warn,以及console.error关于服务器端(终端)

不过,也有轻便的模块即添加蓝色,橙色和红色console.infoconsole.warn如还有console.error分别。这样,控制台API的行为就像客户端一样。

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

在此处输入图片说明


10

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


如在其他地方观察到的:Firefox 78:在log.info输出之前打印ⓘ(i圈)。Chrome的84:不
汤姆·亨特

3

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

stdout 同步或异步可写流。

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

标准输出或非阻塞功能包括:console.log,console.info,util.puts,util.print和Stderr。

所述阻挡functons是:console.warn,console.error,util.debug和process.stdin(用于获取用户输入的可读流)。


2

已经确定日志和信息基本上是同一件事,但是我不确定是否完全可以回答这个问题:

使用console.log和console.info有什么好处?

除了已经提到的好处外,您还可以将每种用途用于不同的目的。例如,您可以仅使用console.log进行快速调试并将内容吐出到控制台,而可以将console.info用作要在代码中输出到控制台的永久消息,例如有关当前应用程序状态的信息。然后,当您遇到在控制台中打印了随机对象的情况,并且意识到偶然在某个地方留下了一条日志语句时,可以对'console.log'进行全局搜索并删除每个实例并放心您没有删除要留在那里的任何重要内容。


0

不同的日志记录级别使您可以管理控制台中的噪声级别: 在Firefox(我现在正在使用78)和Chrome(84)devtools中,js控制台使您可以选择想要的输出“调试级别”看到。FF您可以切换的知名度console.error.warn.log.info,并.debug通过点击每个单独的按钮(这表明你有多少被抑制,当“关”),而Chrome浏览器有复选标记旁边项的下拉列表(邮件.info.log通过控制(“信息”),然后.debug按“详细”)。如果抑制了输出,Chrome下拉标签(“所有级别”或您设置的任何内容)将变为红色。


0

我已经看到在哪里console.log临时记录状态信息以进行调试。

console.info 这是更永久的事情-例如说正在运行的端口是什么,以及在完成调试后不会中断的端口。

这样可以很容易地清理代码以提交代码。您甚至可以让您的linter拥有防止console.log提交的规则。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.