這個模塊定義了一個控制臺類,并且暴露了一個console
對象。
console
對象是一個特殊的Console
實例,它的輸出被傳至stdout
或stderr
。
為了使用的方便,console
被定義為一個全局對象,不需要通過require
就可直接使用。
用來向stdout
和stderr
打印信息。與大多數(shù)瀏覽器提供的console
對象的功能類似,只是這里輸出被傳至stdout
或stderr
。
當(dāng)目的地是終端或文件時(為了避免過早退出丟失信息),console
函數(shù)時同步的。當(dāng)目的地是管道時(為了避免長時間阻塞),console
函數(shù)時異步的。
下面的例子里,stdout
是非阻塞的,stderr
是阻塞的:
$ node script.js 2> error.log | tee info.log
日常使用時,除了你需要記錄大量數(shù)量的數(shù)據(jù),你不用擔(dān)心阻塞/非阻塞。
向stdout
打印一行新信息。這個函數(shù)可以像printf()
那樣接受多個參數(shù),例子:
var count = 5;
console.log('count: %d', count);
// prints 'count: 5'
如果第一個字符串中沒有發(fā)現(xiàn)格式化元素,那么util.inspect
將被應(yīng)用到各個參數(shù)。詳情參閱util.format()
。
與console.log
相同。
與console.log
相同。但是輸出至stderr
。
與console.err
相同。
對obj
調(diào)用util.inspect
并且將結(jié)果字符串輸出至stdout
。這個函數(shù)會忽略obj
上的任何自定義inspect()
函數(shù)。一個可選的options
參數(shù)可以被傳遞用來格式化字符串的某些方面:
showHidden - 如果為true
,object
的不可枚舉和標(biāo)志屬性也會被顯示。默認(rèn)為false
。
depth - 告訴inspect
在格式化對象時遞歸多少次。在檢查大而復(fù)雜的對象時很有用。默認(rèn)為2。若要遞歸到底則傳遞null
。
colors - 如果為true
,那么輸出會以ANSI顏色碼的形式輸出。默認(rèn)為false
。顏色是可以自定義,參閱下文。
被用來計算指定操作之間時間間隔。為了開始一個timer
,調(diào)用console.time()
方法,作為唯一參數(shù)可以給它一個名字。為了關(guān)閉一個timer
,并且得到毫秒間隔,僅僅以相同的名字參數(shù)調(diào)用一次console.timeEnd()
。
停止一個之前通過console.time()
開啟的timer
,并且向控制臺打印結(jié)果。
例子:
console.time('100-elements');
for (var i = 0; i < 100; i++) {
;
}
console.timeEnd('100-elements');
// prints 100-elements: 262ms
向stderr
打印'Trace :'
,跟隨著格式化信息和堆棧信息。
與assert.ok()
類似,但是錯誤信息被像util.format(message...)
一樣格式化。
使用require('console')
后。Console
或console.Console
可以取得這個類。
var Console = require('console').Console;
var Console = console.Console;
你可以調(diào)用Console
類來自定義如console
一樣的簡單日記記錄器,但是有不同的輸出流。
通過傳遞一個或兩個可寫流實例,創(chuàng)建一個新的Console
。stdout
是一個用來打印日志和信息的輸出流。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.stdout
和process.stderr
:
new Console(process.stdout, process.stderr);
更多建議: