本文介紹log4js的使用,log4js的名頭很響,關注已久,但一直沒使用過。去年最後一天,公司線上服務進行宕機,引起了甲方高層領導的嚴重關切。其根本原因是日誌檔案過大,超過了伺服器分割槽——因為開發人員只顧寫大量日誌,並沒有刪除。此事雖不關已,但也算是乙個教訓。
因此,尋找乙個好的日誌系統,在專案開發中十分重要,本文著重的是實踐,關於log4js不過多說明。
使用npm安裝,命令如下:
npm install log4js
本文安裝的版本為4.0.2
。網上有些資料沒有明確標明log4js的版本,導致個別函式或引數不對應,無法在新版本上使用,因此,在實際中,一定要注意版本的對應性。
log4js的使用比較簡單。看一下官方的示例:
const log4js = require('log4js');
log4js.configure();
const logger = log4js.getlogger('cheese');
logger.trace('entering cheese testing');
logger.debug('got cheese.');
logger.info('cheese is comté.');
logger.warn('cheese is quite smelly.');
logger.error('cheese is too ripe!');
logger.fatal('cheese was breeding ground for listeria.');
將**版本儲存為log_test.js,用node執行之,終端無任何輸出。在當前目錄得到檔案cheese.log
,其內容如下:
[2019-02-24t23:24:00.156] [error] cheese - cheese is too ripe!
[2019-02-24t23:24:00.160] [fatal] cheese - cheese was breeding ground for listeria.
**首先引入log4js庫,然後呼叫log4js.configure()
進行配置,定義了乙個名為cheese
的輸出源,不同的輸出源,可以設定不同的檔名、等級等許多引數。注意,上面配置 的等級為error
,只有error
、fatal
等級的日誌才會輸出。
使用時,呼叫log4js.getlogger('cheese')
得到例項logger
,log4js提供了trace
、debug
、info
、warn
、error
、fatal
等不同等級的介面,可以根據需要呼叫,筆者常用的是debug
、info
、error
這三個函式。
上面的示例過於簡單,這裡分享一下稍微具備專案實戰的示例。
功能:專案中有不同的模組,根據模組名區分日誌檔案,不同模組日誌不能混合。日誌檔案每天備份一次。能與pm2集群模組整合。輸出檔案同時,也輸出到終端中。
**如下:
/*
檔名:log_utils.js
對log4js的簡單封裝
實踐:不同的模組使用不同的日誌檔案,配置在configure進行。
將日誌寫入檔案,然後使用tail -f xx.txt可實時檢視,即使進行備份,也不影響
知識點:
每天備份:pattern為.yyyy-mm-dd.txt
每小時:pattern為.yyyy-mm-dd-mm.txt
*/const log4js = require('log4js');
log4js.configure(
, datelog:
,datelog2:
,// more...
},categories:
, datelog:
,datelog2:
,// more...
},// for pm2...
pm2: true,
disableclustering: true, // not sure...});
function getlogger(type)
module.exports =
**以庫的形式提供,使用示例如下:
const log4js = require('../lib/log_utils.js'); // 引入庫
const logger = log4js.getlogger('datelog'); // 獲取指定的輸出源
logger.info('hello world'); // 列印
李遲 2019.2.24 週日 夜
Nodejs 使用log4js日誌
一 建立log4.js檔案,儲存日誌到log檔案,並在控制台輸出,如果不控制台輸出,把刪除紅色的 const log4js require log4js path require path log4js.configure trace debug info warn error fatal cate...
nodejs日誌管理 log4js使用詳解
注 log4js日誌級別,分別為 權值從小到大 all trace debug info warn error fatal mark off 1.同一檔案,不同 level 日誌輸出 var log4js require log4js log4js.configure 控制台輸出 type date...
nodejs之log4js日誌記錄模組簡單配置使用
在我的乙個node express專案中,使用了log4js來生成日誌並且儲存到檔案裡,生成的檔案如下 檔案名字叫 access.log 如果在配置log4js的時候允許了同時存在多個備份log檔案,比如我寫的是3個 backup 3 那麼從時間最遠到最近,會生成access.log.3,acces...