js中的console.log()和console.error()有什么区别?

时间:2018-07-20 19:13:54

标签: node.js

他们看了一些有关node.js中的诺言的视频,他们使用error()打印他现在会出错的东西,并为其他所有内容使用log()。除了以不同的颜色打印东西以外,这两个功能之间是否还有主要区别?

3 个答案:

答案 0 :(得分:6)

console.error()写入stderr,而console.log()写入stdout,如the doc中所述。

在默认运行的nodejs中,stdoutstderr都进入控制台,但是很显然,它们可以被定向到不同的地方并且可以被不同地使用。例如,当使用诸如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没有。