他们看了一些有关node.js中的诺言的视频,他们使用error()打印他现在会出错的东西,并为其他所有内容使用log()。除了以不同的颜色打印东西以外,这两个功能之间是否还有主要区别?
答案 0 :(得分:6)
console.error()
写入stderr
,而console.log()
写入stdout
,如the doc中所述。
在默认运行的nodejs中,stdout
和stderr
都进入控制台,但是很显然,它们可以被定向到不同的地方并且可以被不同地使用。例如,当使用诸如forever
之类的工具时,这两个流将记录到单独的日志文件中,以便可以分别进行检查。
假设是console.error()
可能包含更重要的信息,可能需要单独查看,但这实际上取决于您如何单独使用console.log()
和console.error()
程序。
答案 1 :(得分:1)
这里是基于不同方面对console.log()和console.error()的区别的详细说明。
1。定义
Console.log()
添加到:v0.1.100。
用换行符打印到stdout
。可以传递多个参数,第一个用作主要消息,所有其他参数用作类似于printf(3)的替换值(所有参数均传递给util.format()
)。
Console.error()
添加到:v0.1.100中。
用换行符打印到stderr
。可以传递多个参数,第一个用作主要消息,所有其他参数用作类似于printf(3)的替换值(所有参数都传递给util.format()
)。
2。语法
Console.log()
console.log(obj1 [, obj2, ..., objN]);
console.log(msg [, subst1, ..., substN]);
Console.error()
console.error(obj1 [, obj2, ..., objN]);
console.error(msg [, subst1, ..., substN]);
console.exception(obj1 [, obj2, ..., objN]);
console.exception(msg [, subst1, ..., substN]);
3。参数
Console.log()
(i)要输出的JavaScript对象的列表。这些对象的每个字符串表示形式都按列出的顺序附加在一起并输出。
obj1 ... objN
(ii)包含零个或多个替换字符串的JavaScript字符串。
msg
(iii)用于替换味精内替换字符串的JavaScript对象。这使您可以进一步控制输出格式。
subst1 ... substN
Console.error()。
注意:console.exception()是console.error()的别名;它们在功能上是相同的。
(i)要输出的JavaScript对象的列表。这些对象的每个字符串表示形式都按列出的顺序附加在一起并输出。
obj1 ... objN
(ii)包含零个或多个替换字符串的JavaScript字符串。
msg
(iii)用于替换味精内替换字符串的JavaScript对象。这使您可以进一步控制输出格式。
subst1 ... substN
4。浏览器兼容性
Console.log()和 Console.error()与所有流行的浏览器都具有几乎相同的兼容性。
注意:
(i)对于版本28的Google Chrome Substitution strings
,如果将负值传递给%d,则将其四舍五入为最接近的负整数,因此-0.1变为-1。
(ii)Substitution strings
两者都不支持Internet Explorer(10)%c,当%d不是数字时,%d将呈现为0
答案 2 :(得分:-1)
stdout被缓冲,而stderr没有。