node日志-log4js

分享一个NodeJS中写日志的第三方包:Log4js.

安装log4js

npm install log4js

创建log.js

/**
 * Created by hu on 2019/1/9
 */
const path = require('path');
const log4js = require('log4js');
const logPath = process.env.LOG_PAHT || CONFIG.log.path,
      logType = CONFIG.log.type || 'info',
      logLevel = (CONFIG.log.level || 'all').toUpperCase();

// 自定义日志类别
log4js.configure({
    appenders: [
        {
            type: 'console',
            category: "console"
        }, // 控制台输出
        {
            type: 'file',
            category: 'fileLog',
            filename: path.join(logPath, 'log.log'),
            maxLogSize: 104857600,
            backups: 100
        }, // 单文件输出
        {
            type: 'logLevelFilter',
            level: 'DEBUG',
            category: 'recordRequestTime',
            appender: {
                type: 'file',
                filename: path.join(logPath, 'time.log'),
                pattern: '-yyyy-MM-dd.log',
                alwaysIncludePattern: true,
            },
        },
        {
            type: 'logLevelFilter',
            level: 'DEBUG',
            category: 'recordUploadFileError',
            appender: {
                type: 'file',
                filename: path.join(logPath, 'upload.log'),
                pattern: '-yyyy-MM-dd.log',
                alwaysIncludePattern: true,
            },
        },
        {
            type: "dateFile",
            category: 'dateFileLog',
            filename: path.join(logPath, 'log'),
            pattern: "-yyyy-MM-dd.log",
            alwaysIncludePattern: true
        } // 日期格式文件输出
    ],
    replaceConsole: true,   //替换console.log
    levels: {
        console: 'ALL',
        fileLog: 'ALL',
        dateFileLog: 'ALL'
    }
});
const logger = log4js.getLogger(logType || 'dateFileLog');
const getLogger = (type) => {
    return log4js.getLogger(type);
}
// 设置日志级别
logger.setLevel(logLevel.toUpperCase());
// 设置日志脱敏
logger.setMask(CONFIG.log.mask);

exports.logger = logger;
exports.getLogger = getLogger;
exports.use = (app) => {
    app.use(log4js.connectLogger(logger, {level: 'info', format: ':method :url :status :response-timems'}));
}

创建系统配置文件 config/index.js

const config = {
    debug: true,
    log: {
        path: './',
        type: 'console',
        level: 'debug',
        mask: true
    }
}

module.exports = config;

在入口文件 app.js 中添加全局LOG和CONFIG

// 系统配置
global.CONFIG = require('./config/index');

// 日志对象
const log = require('./log');
global.LOG = log.logger;
global.TIMELOG = log.getLogger('recordRequestTime');
global.UPLOADERROR = log.getLogger('recordUploadFileError');

调用日志user.js

var express = require('express');
var router = express.Router();
const request = require('request');

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express-test' });
});

// 接口
router.get('/gettest', (req, res, next) => {
  request.get({
    url: `http-url`,
    json: req.body,
    headers:{
        'Content-Type': 'application/json',
    },
    gzip:true,
    }, (err, response, body) => {
        LOG.info(body); // 调用日志
        if (err) {
            res.json(err);
        } else {
            res.json(body);
        }
    });
});
module.exports = router;

你可能感兴趣的:(node日志-log4js)