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

使用

修改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' }));

你可能感兴趣的:(Node.JS -- log4js 2.x 配置)