node之log4js

log4js的配置文件:

"log4js": {
        "appenders": {
            "out": { "type": "console" },
            "task": { "type": "dateFile", "filename": "logs/task", "pattern": "-yyyy-MM-dd.log", "alwaysIncludePattern": true },
            "result": { "type": "dateFile", "filename": "logs/result", "pattern": "-yyyy-MM-dd.log", "alwaysIncludePattern": true },
            "error": { "type": "dateFile", "filename": "logs/error", "pattern": "-yyyy-MM-dd.log", "alwaysIncludePattern": true },
            "default": { "type": "dateFile", "filename": "logs/default", "pattern": "-yyyy-MM-dd.log", "alwaysIncludePattern": true },
            "rate": { "type": "dateFile", "filename": "logs/rate", "pattern": "-yyyy-MM-dd.log", "alwaysIncludePattern": true }
        },
        "categories": {
            "default": { "appenders": ["out", "default"], "level": "info" },
            "task": { "appenders": ["task"], "level": "info" },
            "result": { "appenders": ["result"], "level": "info" },
            "error": { "appenders": ["error"], "level": "error" },
            "rate": { "appenders": ["rate"], "level": "info" }
        }
    }

  当然有的项目当中用不了这么多种Log,可自行删除一些

笔者喜欢对log4js封装一下,如下:

var log4js = require('log4js');
var logger = log4js.getLogger('info');
var loggerDebug = log4js.getLogger("debug");
var loggerError = log4js.getLogger("error");
var DEFAULT_FORMAT = ':remote-addr - -' +
    ' ":method uri[:url] HTTP/:http-version"' +
    ' :status :content-length';

function init(config) {
    log4js.configure(config);
    return log4js.connectLogger(log4js.getLogger('info'), {
        level: log4js.levels.INFO,
        format: DEFAULT_FORMAT
    });
}

function info(value) {
    logger.info(value);
}

function debug(value) {
    loggerDebug.debug(value);
}

function warn(value) {
    logger.warn(value);
}

function error(value) {
    if (typeof(value) != 'object') {
        logger.error(value);
        loggerError.error(value);
    } else {
        logger.error(value.stack);
        loggerError.error(value.stack);
    }
}

module.exports = {
    init: init,
    info: info,
    debug: debug,
    warn: warn,
    error: error
}

  项目启动时首先要初始化log4js

var config = require('config');
var logger = require('./modules/logger');
logger .init(config.log4js);

logger.info('The solution is resolve');

 

原文地址:https://www.cnblogs.com/xbblogs/p/7774301.html