控制台
稳定性: 4 - 冻结
Node.js的console模块提供了一个简单的调试控制台。
Node.js控制台的作用是可以将输出字符打印到stdout(标准输出)和stderr(标准错误)。类似于大部分浏览器提供的console对象函数,Node也是输出到stdout和 stderr。
如果输出目标是终端或文件的时候,console函数是同步的(这是为了防止意外的退出而导致数据丢失),输出是管道的时候是异步的(防止阻塞时间太长)。
下面的例子里,stdout是非阻塞的,而stderr是阻塞的:
$ node script.js 2> error.log | tee info.log
平常使用过程中,只有发现大批量的数据时,才会考虑阻塞或非阻塞问题。
console.log([data][, ...])
输出到stdout并新起一行。和printf()
类似,stdout可以传入多个参数,例如:
var count = 5;
console.log('count: %d', count);
// prints 'count: 5'
如果第一个字符里没有找到格式化的元素,util.inspect
将会应用到各个参数
console.info([data][, ...])
console.error([data][, ...])
console.warn([data][, ...])
console.dir(obj[, options])
在obj
使用util.inspect
,并打印结果到stdout,而这个函数绕过inspect()
。options
参数可能传入以下几种:
showHidden
- 如果是true
,将会展示对象的非枚举属性,默认是false
。
depth
- inspect
对象递归的次数,对于复杂对象的扫描非常有用。默认是2
。想要严格递归,传入null
。
colors
- 如果是true
,输出会格式化为 ANSI 颜色代码。默认是false
。颜色可以定制,下面会介绍。
console.time(label)
标记一个时间点。
console.timeEnd(label)
计时器结束的时候,记录输出,例如:
console.time('100-elements');
for (var i = 0; i < 100; i++) {
;
}
console.timeEnd('100-elements');
// prints 100-elements: 262ms
console.trace(message[, ...])
输出当前位置的栈跟踪到stderr'Trace :'
。
console.assert(value[, message][, ...])
和 assert.ok() 类似, 但是错误的输出格式为: util.format(message...) 。