Node.JS -- log4js 2.x 配置

作者: 博客已迁移I米阳 | 来源:发表于2018-05-31 09:06 被阅读17次

    今天新开一个项目,把原来的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' }));
    

    欢迎关注个人公众号:


    个人公众号

    相关文章

      网友评论

        本文标题:Node.JS -- log4js 2.x 配置

        本文链接:https://www.haomeiwen.com/subject/vhfajftx.html