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
之后