node log4js副本

借鉴网址:http://blog.fens.me/nodejs-log4js/

log4js 类似于java log4j.

配置案例:

var log4js = require('log4js');
log4js.configure({
  appenders: [
    { type: 'console' }, //控制台输出
    {
      type: 'file', //文件输出
      filename: 'logs/access.log', 
      maxLogSize: 1024,
      backups:3,
      category: 'normal' 
    }
  ]
});
var logger = log4js.getLogger('normal');
logger.setLevel('INFO');
...
//app.use(...)
//app.use(...)
app.use(log4js.connectLogger(logger, {level:log4js.levels.INFO}));
app.use(app.router);

log4js的输出级别6个: trace, debug, info, warn, error, fatal

  • logger.trace(‘Entering cheese testing’);

  • logger.debug(‘Got cheese.’);

  • logger.info(‘Cheese is Gouda.’);

  • logger.warn(‘Cheese is quite smelly.’);

  • logger.error(‘Cheese is too ripe!’);

  • logger.fatal(‘Cheese was breeding ground for listeria.’);

express中log4js配置案例:

1、常常会将日志配置写入配置文件config.js,如下:

log: {
    type: 'dateFile',
    filename: 'logs/log',
    pattern: "_yyyy-MM-dd",
    maxLogSize: 1024,
    alwaysIncludePattern: true,
    backups: 3,
    category: 'logger'
}

2、会重写部分接口: 如附件所示..

3、在使用时:

var logger = require('../common/logger');
logger.debug("sys original param:" + parm);

其他高级配置需进一步研究。。。。

附件内容:

/**
 * Created by shuwei on 15-11-25.
 */
var log4js = require('log4js');
var config = require('../config');
//get log config info
var logConfig = config.log;

//get log object
log4js.configure({
    appenders: [
        {type: 'console'}, //控制台输出
        logConfig
    ],
    replaceConsole: true
});

var loggerman = log4js.getLogger(logConfig.category);
//写日至
function logMsg(userId, msg) {
    var str = '';
    if (userId && userId != '')
        str = '[user:' + userId + ']' + msg;
    else
        str = '[user:UNKNOW]' + msg;
    return str;
}

/**
 * 获取日志管理对象
 * @returns {*}
 */
exports.logger = function (name) {
    loggerman = log4js.getLogger(name ? name : logConfig.category);
    loggerman.setLevel('INFO');
    return loggerman;
};
/**
 * 记录一般信息日志
 * @param user 当前用户
 * @param msg 日志信息
 */
exports.info = function (user, msg) {
    var str = logMsg(user, msg);
    loggerman.info(str);
};
/**
 * 记录出错信息日志
 * @param user 当前用户
 * @param msg 日志信息
 */
exports.error = function (user, msg, err) {
    var str = logMsg(user, msg);
    loggerman.error(str);
    if(err) loggerman.error(err.stack);
};
/**
 * 记录警告信息日志
 * @param user 当前用户
 * @param msg 日志信息
 */
exports.warn = function (user, msg) {
    var str = logMsg(user, msg);
    loggerman.warn(str);
}

/**
 * 记录调试日志
 * @param user 默认为系统用户
 * @param msg 日志信息
 */
exports.debug = function (user,msg) {
    var str = logMsg(user ? user:"system", msg);
    loggerman.debug(str);
}

/**
 * 记录每次接口的调用
 * @param user 当前用户
 * @param url 日志信息
 */
exports.logRoute = function(user,url){
    var str = logMsg("("+user+") request: '"+url+"'");
    loggerman.info(str);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值