日志管理 log4js

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

from:https://www.jianshu.com/p/52ad25d4fd10

版本:

  • express:"~4.13.4"
  • log4js:"^0.6.38"

安装

npm install log4js

封装 log4js:

在项目根目录下新建文件 logger.js


var log4js = require('log4js');

log4js.configure({
    appenders: [{
        type: 'console' // 控制台输出
    }, {
        type: 'dateFile', // 文件输出
        filename: 'logs/', // 需要手动创建此文件夹
        pattern: "yyyy-MM-dd.log",
        alwaysIncludePattern: true,
        maxLogSize: 1024,
        backups: 4, // 日志备份数量,大于该数则自动删除
        category: 'logInfo' // 记录器名  
    }],
    replaceConsole: true // 替换 console.log
});

levels = {
    'trace': log4js.levels.TRACE,
    'debug': log4js.levels.DEBUG,
    'info': log4js.levels.INFO,
    'warn': log4js.levels.WARN,
    'error': log4js.levels.ERROR,
    'fatal': log4js.levels.FATAL
};

exports.logger = function (name, level) {
    var logger = log4js.getLogger(name);
    logger.setLevel(levels[level] || levels['debug']);
    return logger;
};

// 配合 express 使用的方法
exports.use = function (app, level) {
    app.use(log4js.connectLogger(log4js.getLogger('logInfo'), {
        level: levels[level] || levels['debug'],
        format: ':method :url :status'
    }));
};

在上面的代码中 appenders 中配置了两个输出,一个是控制台输出,一个是文件输出。

说明:
log4js 的输出级别: trace,debug,info,warn,error,fatal

如果输出级别是 info,则不会打印出低于 info 级别的日志 trace,debug,只打印info,warn,error,fatal。这样做的好处在于,在生产环境中我们可能只关心异常和错误,并不关心调试信息。从而大大减少日志的输出,从而减少磁盘写入。而在开发环境中,我们可能需要打印非常多的信息,帮助开发人员定位错误,调试代码。

与 express 框架集成

app.js 中加入以下代码:


var log4js = require('./logger');
log4js.use(app);

在 index.js 中使用 logger 输出


var logger = require('../logger').logger('index');

/* GET home page. */
router.get('/', function (req, res, next) {
    console.log('This is an index page!');
    logger.info('This is an index page! -- log4js');
    res.render('index', {title: 'Express'});



作者:与蟒唯舞
链接:https://www.jianshu.com/p/52ad25d4fd10
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值