Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js console.log vs console.info_Javascript_Node.js_Terminal_Console - Fatal编程技术网

Javascript Node.js console.log vs console.info

Javascript Node.js console.log vs console.info,javascript,node.js,terminal,console,Javascript,Node.js,Terminal,Console,使用console.log与console.info相比有什么好处? 或者任何其他控制台命令 console.info("info"); console.error("error"); console.warn("warn"); vs 我认为它可能会改变输出的颜色或连接某种标签,但它们似乎都做了相同的事情。根据这里的文件: 它们似乎都与控制台做相同的事情。很明显,根据 控制台信息([数据],…)# 与console.log相同 控制台。错误([数据],…)# 与console.log相同,但

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

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

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

它们似乎都与控制台做相同的事情。很明显,根据

控制台信息([数据],…)# 与console.log相同

控制台。错误([数据],…)# 与console.log相同,但打印到stderr

console.warn([数据],…]))# 与console.error相同


这意味着既没有好处也没有坏处<代码>信息=
日志
,和
警告
=
错误
。除非您想打印到
stderr
info
和/或
log
将起作用。

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

如果您是从
node.js
执行管道或重定向,那么差异很重要

在浏览器和
Node.js
中都编写了大量JavaScript来运行。让节点实现完整控制台允许更大的代码交叉兼容性

在大多数浏览器中,不仅这些日志使用不同的颜色,而且您还可以过滤以查看特定的消息

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

它们是一样的,这是唯一的优势


除了公认的答案之外,还有一个细节:在Chrome和FireFox中,
控制台.info
日志行的前缀是一个小小的i图标,而
控制台.log
行则不是
warn
error
行的前缀分别是一个小三角形和x

从视觉上看,
控制台.log
控制台.info
控制台.warn
,以及
控制台.error
关于服务器端(终端)

但是,对于
console.info
console.warn
、以及
console.error
,分别添加了蓝色、橙色和红色。因此,控制台API的行为类似于客户端

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

虽然
console.log
console.info
可能没有什么不同,但除了颜色之外还有其他用途。例如,当使用类似eslint的linter时,可以设置
console.log
以提供警告消息。假设您只想使用
console.log
进行开发,而使用
console.info
获取最终用户可能需要的信息。使用linter,您现在可以看到一个直观的临时
控制台日志提醒,它在开发过程中帮助您,但在提交/发布之前必须删除。

stdin 用于从用户处读取输入的可读流

stdout 同步或异步的可写流

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

console.info("info");
console.error("error");
console.warn("warn");
console.log("log");
stdout或非阻塞功能是:console.log、console.info、util.puts、util.print和Stderr


阻塞函数是:console.warn、console.error、util.debug和process.stdin(用于获取用户输入的可读流)。

已经确定日志和信息基本上是一样的,但我不确定是否完全回答了这个问题:

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


除了已经提到的好处之外,还有一个好处,就是您可以将每一个用于不同的目的。例如,您可能使用console.log只是为了快速调试和将内容输出到控制台,而使用console.info则是为了在代码中输出到控制台的永久性消息,例如关于当前应用程序状态的信息。然后,当您的控制台中打印了一个随机对象,并且您意识到您在其中某个地方意外地留下了一条日志语句时,您可以对“console.log”进行全局搜索并删除每个实例,并且确信您没有删除任何重要的内容。不同的日志记录级别允许您管理控制台中的噪音级别:
在Firefox(我现在使用78)和Chrome(84)devtools中,js控制台允许您选择要查看的输出的“调试级别”。FF允许您通过单击每个按钮来切换
控制台.error
.warn
.log
.info
.debug
消息的可见性(显示“关闭”时有多少消息被抑制),而Chrome在这些消息旁边有一个带有复选标记的下拉列表(
.info
.log
由“info”控制,而
.debug
由“Verbose”控制。如果输出被抑制,Chrome下拉标签(“所有级别”或您设置的任何内容)将变为红色。

我看到了
控制台的位置。log
用于临时记录状态信息以进行调试

console.info
是一个更持久的东西,比如说什么端口在运行,什么端口在调试完成后不会被删除


这使得在提交代码时可以轻松清理代码。您甚至可以让linter有一个规则来防止console.log被提交。

谢谢!这是浏览器,它以不同的方式显示。我在终端中查找颜色更改。在
节点中(
8.11.4
)Chrome67还有
console.debug
(很可能还有更早的版本)。
debug
排名在
log
之后