借鉴网址: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);
}