IO.js Console

由 Janet 创建,路飞 最后一次修改 2016-02-24

稳定度: 2 - 稳定

这个模块定义了一个控制台类,并且暴露了一个console对象。

console对象是一个特殊的Console实例,它的输出被传至stdoutstderr

为了使用的方便,console被定义为一个全局对象,不需要通过require就可直接使用。

console

  • Object

用来向stdoutstderr打印信息。与大多数浏览器提供的console对象的功能类似,只是这里输出被传至stdoutstderr

当目的地是终端或文件时(为了避免过早退出丢失信息),console函数时同步的。当目的地是管道时(为了避免长时间阻塞),console函数时异步的。

下面的例子里,stdout是非阻塞的,stderr是阻塞的:

$ node script.js 2> error.log | tee info.log

日常使用时,除了你需要记录大量数量的数据,你不用担心阻塞/非阻塞。

console.log([data][, ...])

stdout打印一行新信息。这个函数可以像printf()那样接受多个参数,例子:

var count = 5;
console.log('count: %d', count);
// prints 'count: 5'

如果第一个字符串中没有发现格式化元素,那么util.inspect将被应用到各个参数。详情参阅util.format()

console.info([data][, ...])

console.log相同。

console.error([data][, ...])

console.log相同。但是输出至stderr

console.warn([data][, ...])

console.err相同。

console.dir(obj[, options])

obj调用util.inspect并且将结果字符串输出至stdout。这个函数会忽略obj上的任何自定义inspect()函数。一个可选的options参数可以被传递用来格式化字符串的某些方面:

  • showHidden - 如果为trueobject的不可枚举和标志属性也会被显示。默认为false

  • depth - 告诉inspect在格式化对象时递归多少次。在检查大而复杂的对象时很有用。默认为2。若要递归到底则传递null

  • colors - 如果为true,那么输出会以ANSI颜色码的形式输出。默认为false。颜色是可以自定义,参阅下文。

console.time(label)

被用来计算指定操作之间时间间隔。为了开始一个timer,调用console.time()方法,作为唯一参数可以给它一个名字。为了关闭一个timer,并且得到毫秒间隔,仅仅以相同的名字参数调用一次console.timeEnd()

console.timeEnd(label)

停止一个之前通过console.time()开启的timer,并且向控制台打印结果。

例子:

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...)一样格式化。

Class: Console

使用require('console')后。Consoleconsole.Console可以取得这个类。

var Console = require('console').Console;
var Console = console.Console;

你可以调用Console类来自定义如console一样的简单日记记录器,但是有不同的输出流。

new Console(stdout[, stderr])

通过传递一个或两个可写流实例,创建一个新的Consolestdout是一个用来打印日志和信息的输出流。stderr是一个被用来打印警告和错误输出的。如果stderr没有被传递,那么警告和错误信息将被传递至stdout

var output = fs.createWriteStream('./stdout.log');
var errorOutput = fs.createWriteStream('./stderr.log');
// custom simple logger
var logger = new Console(output, errorOutput);
// use it like console
var count = 5;
logger.log('count: %d', count);
// in stdout.log: count 5

全局的console是一个特殊的Console实例,它的输出被传递至process.stdoutprocess.stderr

new Console(process.stdout, process.stderr);
以上内容是否对您有帮助:
二维码
建议反馈
二维码