在Node.js官方文档 https://nodejs.org/api/console.html 中描述了控制台的所有API方法。
Class: Console
- new Console(stdout[, stderr])
- console.assert(value[, message][, ...])
- console.dir(obj[, options])
- console.error([data][, ...])
- console.info([data][, ...])
- console.log([data][, ...])
- console.time(label)
- console.timeEnd(label)
- console.trace(message[, ...])
- console.warn([data][, ...])
当输出目标是终端或文件,控制台函数都是同步的(以防过早退出丢失信息);当目标是管道的时候,它是异步的(以防长时间的阻塞)。
node script.js 2> error.log | tee info.log
console.log([data][, …])
向标准输出另起一行打印
(1)此函数与 printf() 类似,可以带多个参数。%d 为输出整数,%s 为输出字符串,%j 为输出 JSON 的字符串格式。
var name = 'chy';
var age = 24;
var jsonInfo = {name:'chy',age:'24',location:'FuZhou'};
console.log('%j => name=%s,age=%d', jsonInfo, name, age);
// 输出 {"name":"chy","age":"24","location":"FuZhou"} => name=chy,age=24
(2)如果没有匹配到输出格式的话,会默认使用空格最为分隔符,依次打印多余的字符串。
console.log('log', 'arg1', 'arg2', 3);
//输出 log arg1 arg2 3
(3)在JS中对象默认就是JSON对象。因此只能用 ‘%j’ 或 默认的方式 打印。
var person = new Object();
person.name = 'chy';
person.age = 24;
person.location = 'FuZhou';
console.log(person);
// 输出 { name:'chy' ,age:24, location:'FuZhou' }
console.log('%s %j', person, person);
// 输出 [object Object] {"name":"chy","age":"24","location":"FuZhou"}
console.dir(obj[, options])
对 obj 使用 util.inspect 并将结果字符串向标准输出打印。
console.time(label)
标记一个时间。
console.timeEnd(label)
结束一个 同样标签 的定时器,记录输出。浮点类型,单位毫秒,保留3位小数,即精确到微妙。
console.time('cost time');
console.timeEnd('costTime');
//输出 <node:4500> Warning: No such label 'costTime' for console.timeEnd()
console.timeEnd('cost time');
//输出 cost time: 858.063ms
console.trace(message, […])
打印格式化的信息和当前位置的堆栈信息到标准错误输出,以上输出紧跟在 ‘Trace: message’ 之后另起一行后面。
console.assert(value[, message][, …])
类似 assert.ok(value[, message])。用于判断变量是否和预期的是一样的。
console.assert(true, 'does nothing');
//输出 undefined
console.assert(false, 'Whoops %s', 'didn\'t work');
//输出 AssertionError: Whoops didn't work
assert.ok(true, 'does nothing');
//输出 undefined
assert.ok(false, 'Whoops didn\'t work');
//输出 AssertionError: Whoops didn't work