Node.JS -- log4js 2.x 配置

今天新開一個項目,把原來的log4js 1.x 升級到2.x版本后發現原來的log4js配置不再能使用,查了下官方文檔,順便也記錄下 log4js 2.x的配置。

安裝

項目安裝:
npm install log4js --save

配置

新建一個 log4js.json文件,并添加如下json內容:

{
  "appenders": {
    "console": {
      "type": "console"
    },
    "trace": {
      "type": "dateFile",
      "filename": "./logs/access-",
      "pattern": ".yyyy-MM-dd.log",
      "alwaysIncludePattern": true,
      "maxLogSize ": 31457280
    },
    "http": {
      "type": "logLevelFilter",
      "appender": "trace",
      "level": "trace",
      "maxLevel": "trace"
    },
    "info": {
      "type": "dateFile",
      "filename": "./logs/info-",
      "encoding": "utf-8",
      "pattern": ".yyyy-MM-dd.log",
      "maxLogSize": 10000000,
      "alwaysIncludePattern": true,
      "layout": {
        "type": "pattern",
        "pattern": "[%d{ISO8601}][%5p  %z  %c] %m"
      },
      "compress": true
    },
    "maxInfo": {
      "type": "logLevelFilter",
      "appender": "info",
      "level": "debug",
      "maxLevel": "error"
    },
    "error": {
      "type": "dateFile",
      "filename": "./logs/error-",
      "pattern": ".yyyy-MM-dd.log",
      "maxLogSize": 10000000,
      "encoding": "utf-8",
      "alwaysIncludePattern": true,
      "layout": {
        "type": "pattern",
        "pattern": "[%d{ISO8601}][%5p  %z  %c] %m"
      },
      "compress": true
    },
    "minError": {
      "type": "logLevelFilter",
      "appender": "error",
      "level": "error"
    }
  },
  "categories": {
    "default": {
      "appenders": [
        "console",
        "http",
        "maxInfo",
        "minError"
      ],
      "level": "all"
    }
  }
}

解釋:

"type": "dateFile"   // 可以設置成 console、file、dateFile三種
"filename": "./logs/access-", // 設置log輸出的文件路勁和文件名

"pattern": ".yyyy-MM-dd.log",
"alwaysIncludePattern": true, // 和上面同時使用 設置每天生成log名

"encoding": "utf-8", // 設置文件編碼格式
"maxLogSize ": 31457280 // 設置文件大小

"level": "debug", // 設置log輸出的最低級別
"maxLevel": "error" // 設置log輸出的最高級別 
// log級別為8級 ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF。默認級別是 OFF

使用

修改app.js 再頂部引入:

var log4js = require('log4js');
log4js.configure('config/log4js.json');

這樣程序哪里需要用就可以直接使用例如:

var logger = require('log4js').getLogger("index");
logger.info("this is info");
logger.warn("this is warn");
logger.debug("this is debug");
logger.error("this is error");

log4js 整合到express

其實只需要修改程序app.js里面的默認使用logger模塊便可

// app.use(logger('dev')); // 這句注釋,添加下句
app.use(log4js.connectLogger(log4js.getLogger("http"), { level: 'trace' }));
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容