NPM酷庫:log4js JavaScript日誌框架

NPM酷庫,天天兩分鐘,瞭解一個流行NPM庫。html

前兩天,咱們認識了 debug 庫 和 winston 庫,兩款管理程序日誌的庫,其中debug偏向於適合開發調試,winston則更適合在一個完整的 Node.js 應用中管理平常日誌記錄。node

今天,咱們繼續認識另外一個日誌框架 log4js,這個框架和 winston 有些相似,也提供了多路日誌輸出的功能。所謂多路,意思是你能夠自定義多個日誌儲存驅動,好比,將日誌輸出到終端的同時,將重要日誌記錄到文件中,甚至寫到數據庫中。 winston 中稱之爲 Transports,而log4js 中稱之爲 Appenders (輸出源)。git

注意,雖然 log4js 的名字很像JAVA的日誌庫 log4j,但二者沒什麼關係,而且接口也是不一樣的

log4js 用法

const log4js = require('log4js');

const logger = log4js.getLogger();

logger.level = 'debug';

logger.debug("Some debug messages");

上邊就是log2js 最簡單的用法,程序會將日誌輸出到控制檯:github

[2018-01-06T12:23:43.706] [DEBUG] default - Some debug messages

注意,代碼中將日誌輸出等級設置爲debug,程序會輸出DEBUG級別以上的日誌,若是不設置,默認級別爲OFF 即關閉全部日誌輸出!數據庫

log4js 重要概念

Level

日誌級別,debug/info/error 等,參考 RFC5424。框架

Category

日誌分類,能夠用來標誌不一樣的程序模塊,相似debug庫中的效果,默認分類爲 default函數

Appender

輸出源,你能夠選擇不一樣的輸出源將日誌輸出到控制檯、文件、數據庫,甚至Email。ui

Logger

log4js 的主要日誌接口,能夠實例多個Logger,每個Logger均可選地設置 Category,因此咱們的應用中,不一樣模塊實例化不一樣的Logger對象,輸出的日誌中就會記錄下不一樣模塊的日誌輸出。spa

Layout

Layout是日誌輸出時用來格式化日誌的函數,你能夠自定義不一樣的Layout函數,用來自定義日誌格式。debug

LogEvent

每一次調用日誌記錄函數就會生成一個LogEvent:

logger.debug("Some debug messages");

LogEvent 中包含當前時間戳、日誌級別、分類等信息。

參考資料

log4js: https://github.com/log4js-nod...

log4js文檔: https://log4js-node.github.io...

RFC 5424: https://tools.ietf.org/html/r...

歡迎關注公衆號:梁興臣

梁興臣

天天瞭解一個NPM庫,一年後成爲Node.js高手

相關文章
相關標籤/搜索