摘要:酷庫,每天兩分鐘,了解一個流行庫。今天,我們繼續(xù)認(rèn)識另一個日志框架,這個框架和有些類似,也提供了多路日志輸出的功能。中稱之為,而中稱之為輸出源。日志分類,可以用來標(biāo)志不同的程序模塊,類似庫中的效果,默認(rèn)分類為。
NPM酷庫,每天兩分鐘,了解一個流行NPM庫。
前兩天,我們認(rèn)識了 debug 庫 和 winston 庫,兩款管理程序日志的庫,其中debug偏向于適合開發(fā)調(diào)試,winston則更適合在一個完整的 Node.js 應(yīng)用中管理日常日志記錄。
今天,我們繼續(xù)認(rèn)識另一個日志框架 log4js,這個框架和 winston 有些類似,也提供了多路日志輸出的功能。所謂多路,意思是你可以自定義多個日志儲存驅(qū)動,比如,將日志輸出到終端的同時,將重要日志記錄到文件中,甚至寫到數(shù)據(jù)庫中。 winston 中稱之為 Transports,而log4js 中稱之為 Appenders (輸出源)。
注意,雖然 log4js 的名字很像JAVA的日志庫 log4j,但兩者沒什么關(guān)系,并且接口也是不同的log4js 用法
const log4js = require("log4js"); const logger = log4js.getLogger(); logger.level = "debug"; logger.debug("Some debug messages");
上邊就是log2js 最簡單的用法,程序會將日志輸出到控制臺:
[2018-01-06T12:23:43.706] [DEBUG] default - Some debug messages
注意,代碼中將日志輸出等級設(shè)置為debug,程序會輸出DEBUG級別以上的日志,如果不設(shè)置,默認(rèn)級別為OFF 即關(guān)閉所有日志輸出!
log4js 重要概念 Level日志級別,debug/info/error 等,參考 RFC5424。
Category日志分類,可以用來標(biāo)志不同的程序模塊,類似debug庫中的效果,默認(rèn)分類為 default。
Appender輸出源,你可以選擇不同的輸出源將日志輸出到控制臺、文件、數(shù)據(jù)庫,甚至Email。
Loggerlog4js 的主要日志接口,可以實例多個Logger,每一個Logger都可選地設(shè)置 Category,所以我們的應(yīng)用中,不同模塊實例化不同的Logger對象,輸出的日志中就會記錄下不同模塊的日志輸出。
LayoutLayout是日志輸出時用來格式化日志的函數(shù),你可以自定義不同的Layout函數(shù),用來自定義日志格式。
LogEvent每一次調(diào)用日志記錄函數(shù)就會生成一個LogEvent:
logger.debug("Some debug messages");
LogEvent 中包含當(dāng)前時間戳、日志級別、分類等信息。
參考資料log4js: https://github.com/log4js-nod...
log4js文檔: https://log4js-node.github.io...
RFC 5424: https://tools.ietf.org/html/r...
歡迎關(guān)注公眾號:梁興臣每天了解一個NPM庫,一年后成為Node.js高手
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/90705.html
摘要:昨天,我們認(rèn)識了庫的用法,用來控制輸出調(diào)試日志。今天我們再了解一個日志記錄的庫,一個多路傳輸?shù)娜罩居涗泿?。所謂多路傳輸,是指,你可以自定義多個日志儲存驅(qū)動,比如,將日志輸出到終端的同時,將重要日志記錄到文件中,甚至寫到數(shù)據(jù)庫中。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。 昨天,我們認(rèn)識了debug庫的用法,用來控制輸出調(diào)試日志。但是,debug的特性適合于開發(fā)調(diào)試,并不適合程序記...
摘要:今天我們要了解的庫是,一個專門用來控制輸出調(diào)試日志的庫。但是,隨著項目規(guī)模增加,控制臺輸出的日志就會堆積很多而不可讀。庫就是一款專門控制日志輸出的庫,能夠完美解決我們的上述需求。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。 今天我們要了解的庫是debug,一個專門用來控制輸出調(diào)試日志的庫。 通常,我們直接使用 console.log 輸出調(diào)試日志,使用console對象直接將日志輸...
摘要:有沒有優(yōu)雅的方式呢今天我們了解的庫就是專門來控制輸出棄用功能警告日志的。聲明棄用函數(shù)使用包裹一層我們要廢棄的函數(shù),那么這個函數(shù)在被第一次調(diào)用時,就會自動輸出警告信息。聲明棄用屬性使用聲明對象指定的屬性被棄用。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。 Node.js 高效率編程的基礎(chǔ)是大量的NPM開源庫,開發(fā)應(yīng)用時,找特定領(lǐng)域的NPM庫要比自己從頭寫代碼要高效得多。如果某個領(lǐng)域沒...
摘要:酷庫,每天兩分鐘,了解一個流行庫。昨天,我們學(xué)習(xí)的庫,用于解析命令行參數(shù),能將參數(shù)數(shù)組轉(zhuǎn)換為一個更易于訪問的對象。今天,我們繼續(xù)學(xué)習(xí)一個更加強大的命令行參數(shù)處理庫。 NPM酷庫,每天兩分鐘,了解一個流行NPM庫。 昨天,我們學(xué)習(xí)的minimist庫,用于解析Node.js命令行參數(shù),能將參數(shù)數(shù)組process.env.argv 轉(zhuǎn)換為一個更易于訪問的對象。 今天,我們繼續(xù)學(xué)習(xí)一個更加強...
摘要:酷庫,每天兩分鐘,了解一個流行庫。準(zhǔn)確地說,的編碼采用的是,這是一個很古老的年誕生有些過時的編碼。是系統(tǒng)上非常著名的庫,它可以將數(shù)據(jù)在任何編碼間互轉(zhuǎn)。將字符串轉(zhuǎn)換為編碼的漢字這樣會輸出亂碼將編碼的數(shù)據(jù)轉(zhuǎn)換為字符串正常輸出漢字參考資料 showImg(https://segmentfault.com/img/bV3GvP?w=602&h=339); NPM酷庫,每天兩分鐘,了解一個流行N...
閱讀 1998·2021-09-30 09:53
閱讀 1841·2021-09-24 09:48
閱讀 1755·2019-08-30 14:01
閱讀 2170·2019-08-29 18:35
閱讀 1249·2019-08-26 18:27
閱讀 2979·2019-08-26 12:12
閱讀 942·2019-08-23 17:16
閱讀 932·2019-08-23 15:31