nodejs實踐錄 log4js日誌的使用

2021-09-11 07:29:09 字數 2516 閱讀 9153

本文介紹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,只有errorfatal等級的日誌才會輸出。

使用時,呼叫log4js.getlogger('cheese')得到例項logger,log4js提供了tracedebuginfowarnerrorfatal等不同等級的介面,可以根據需要呼叫,筆者常用的是debuginfoerror這三個函式。

上面的示例過於簡單,這裡分享一下稍微具備專案實戰的示例。

功能:專案中有不同的模組,根據模組名區分日誌檔案,不同模組日誌不能混合。日誌檔案每天備份一次。能與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...