nodejs Log4js v2.x配置使用

安装:

npm install log4js

npm install log4js –save   // 安装到工程目录

配置与使用:

// 基本使用

var log4js = require('log4js');

var logger = log4js.getLogger();

logger.level = 'debug';

logger.debug("Some debug messages");

// 配置规则

/**

 * 第一种:

 * configure方法为配置log4js对象,内部有levels、appenders、categories三个属性

 * levels:

 *         配置日志的输出级别,共ALL<TRACE<DEBUG<INFO<WARN<ERROR<FATAL<MARK<OFF八个级别,default level is OFF

 *         只有大于等于日志配置级别的信息才能输出出来,可以通过category来有效的控制日志输出级别

 * appenders:

 *         配置文件的输出源,一般日志输出type共有console、file、dateFile三种

 *         console:普通的控制台输出

 *         file:输出到文件内,以文件名-文件大小-备份文件个数的形式rolling生成文件

 *         dateFile:输出到文件内,以pattern属性的时间格式,以时间的生成文件

 * replaceConsole:

 *         是否替换控制台输出,当代码出现console.log,表示以日志type=console的形式输出

 *

 */

log4js.configure('./config/log4js.json');

log4js.json

{

  "appenders": {

    "access": {

      "type": "dateFile",

      "filename": "log/access.log",

      "pattern": "-yyyy-MM-dd"

    },

    "rule-console": {

      "type": "console"

    },

    "rule-file": {

      "type": "dateFile",

      "filename": "log/server-",

      "encoding": "utf-8",

      "maxLogSize": 10000000,

      "numBackups": 3,

      "pattern": "yyyy-MM-dd.log",

      "alwaysIncludePattern": true

    },

    "rule-error": {

      "type": "dateFile",

      "filename": "log/error-",

      "encoding": "utf-8",

      "maxLogSize": 1000000,

      "numBackups": 3,

      "pattern": "yyyy-MM-dd.log",

      "alwaysIncludePattern": true

    }

  },

  "categories": {

    "default": {

      "appenders": [

        "rule-console",

        "rule-file",

        "rule-error"

      ],

      "level": "debug"

    },

    "http": {

      "appenders": [

        "access"

      ],

      "level": "info"

    }

  }

}

// 第二种配置方式

log4js.configure({

    appenders: {

        ruleConsole: {type: 'console'},

        ruleFile: {

            type: 'dateFile',

            filename: 'logs/server-',

            pattern: 'yyyy-MM-dd.log',

            maxLogSize: 10 * 1000 * 1000,

            numBackups: 3,

            alwaysIncludePattern: true

        }

    },

    categories: {

        default: {appenders: ['ruleConsole', 'ruleFile'], level: 'info'}

    }

});

 

工程配置问题:

Q1. must have a property “appenders” of type object

解决办法:v1.x与v2.x配置规则发生变化,appenders在v2.x是一个对象。link

 

参考:

     nomiddlename/log4js-node 源码

     npm-log4js

     log4js-node-config

     nodejs总结之日志模块log4js v1.x

     NodeJs之log4js v1.x

     Nodejs中使用Log4js v1.x

     Problem with log4js configuration

posted @ 2017-10-06 16:24  zhen-Android  阅读(6227)  评论(1编辑  收藏  举报