IO.js Console

2018-11-28 22:33 更新

穩(wěn)定度: 2 - 穩(wěn)定

這個(gè)模塊定義了一個(gè)控制臺(tái)類,并且暴露了一個(gè)console對(duì)象。

console對(duì)象是一個(gè)特殊的Console實(shí)例,它的輸出被傳至stdoutstderr。

為了使用的方便,console被定義為一個(gè)全局對(duì)象,不需要通過(guò)require就可直接使用。

console

  • Object

用來(lái)向stdoutstderr打印信息。與大多數(shù)瀏覽器提供的console對(duì)象的功能類似,只是這里輸出被傳至stdoutstderr。

當(dāng)目的地是終端或文件時(shí)(為了避免過(guò)早退出丟失信息),console函數(shù)時(shí)同步的。當(dāng)目的地是管道時(shí)(為了避免長(zhǎng)時(shí)間阻塞),console函數(shù)時(shí)異步的。

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

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

日常使用時(shí),除了你需要記錄大量數(shù)量的數(shù)據(jù),你不用擔(dān)心阻塞/非阻塞。

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

stdout打印一行新信息。這個(gè)函數(shù)可以像printf()那樣接受多個(gè)參數(shù),例子:

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

如果第一個(gè)字符串中沒(méi)有發(fā)現(xiàn)格式化元素,那么util.inspect將被應(yīng)用到各個(gè)參數(shù)。詳情參閱util.format()。

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

console.log相同。

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

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

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

console.err相同。

console.dir(obj[, options])

對(duì)obj調(diào)用util.inspect并且將結(jié)果字符串輸出至stdout。這個(gè)函數(shù)會(huì)忽略obj上的任何自定義inspect()函數(shù)。一個(gè)可選的options參數(shù)可以被傳遞用來(lái)格式化字符串的某些方面:

  • showHidden - 如果為true,object的不可枚舉和標(biāo)志屬性也會(huì)被顯示。默認(rèn)為false。

  • depth - 告訴inspect在格式化對(duì)象時(shí)遞歸多少次。在檢查大而復(fù)雜的對(duì)象時(shí)很有用。默認(rèn)為2。若要遞歸到底則傳遞null。

  • colors - 如果為true,那么輸出會(huì)以ANSI顏色碼的形式輸出。默認(rèn)為false。顏色是可以自定義,參閱下文。

console.time(label)

被用來(lái)計(jì)算指定操作之間時(shí)間間隔。為了開(kāi)始一個(gè)timer,調(diào)用console.time()方法,作為唯一參數(shù)可以給它一個(gè)名字。為了關(guān)閉一個(gè)timer,并且得到毫秒間隔,僅僅以相同的名字參數(shù)調(diào)用一次console.timeEnd()。

console.timeEnd(label)

停止一個(gè)之前通過(guò)console.time()開(kāi)啟的timer,并且向控制臺(tái)打印結(jié)果。

例子:

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()類似,但是錯(cuò)誤信息被像util.format(message...)一樣格式化。

Class: Console

使用require('console')后。Consoleconsole.Console可以取得這個(gè)類。

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

你可以調(diào)用Console類來(lái)自定義如console一樣的簡(jiǎn)單日記記錄器,但是有不同的輸出流。

new Console(stdout[, stderr])

通過(guò)傳遞一個(gè)或兩個(gè)可寫(xiě)流實(shí)例,創(chuàng)建一個(gè)新的Console。stdout是一個(gè)用來(lái)打印日志和信息的輸出流。stderr是一個(gè)被用來(lái)打印警告和錯(cuò)誤輸出的。如果stderr沒(méi)有被傳遞,那么警告和錯(cuò)誤信息將被傳遞至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是一個(gè)特殊的Console實(shí)例,它的輸出被傳遞至process.stdoutprocess.stderr

new Console(process.stdout, process.stderr);
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)