本文目录

log4js 记录不同类型的日志

🌙
手机阅读
本文目录结构

官网:npm上的log4js地址

当前使用的log4js版本的 3.0.5 , 1.X 版本不能这么写

写配置 log_config.js

let log4js = require('log4js');
let path = require('path');
let fs = require('fs');

let basePath = path.join(__dirname, '/logs/');
let defaultPath = path.join(basePath, '/default_database/');
let writeDbPath = path.join(basePath, '/write_database/');
let readDbPath = path.join(basePath, '/read_database/');

let confirmPath = function (pathStr) {
    console.log("pathStr",pathStr);
    if (!fs.existsSync(pathStr)) {
        fs.mkdirSync(pathStr);
        console.log('createPath: ' + pathStr);
    }
};
//创建log的根目录'logs'
if (basePath) {
    confirmPath(basePath);
    //根据不同的logType创建不同的文件目录
    confirmPath(defaultPath);
    confirmPath(writeDbPath);
    confirmPath(readDbPath);
}

log4js.configure({
    appenders: {
        out: {type: 'console'},
        default: {
            type: 'dateFile',
            filename: defaultPath,
            "pattern": "yyyy-MM-dd-hh.log",
            alwaysIncludePattern: true
        },
        write_db: {
            type: 'dateFile',
            filename: writeDbPath,
            "pattern": "yyyy-MM-dd-hh.log",
            alwaysIncludePattern: true
        },
        read_db: {
            type: 'dateFile',
            filename: readDbPath,
            "pattern": "yyyy-MM-dd-hh.log",
            alwaysIncludePattern: true
        }
    },
    categories: {
        default: {
            appenders: ['default'],
            level: 'info'
        },
        write_db: {
            appenders: ['write_db'],
            level: 'info'
        },
        read_db: {
            appenders: ['read_db'],
            level: 'info'
        }
    },
    replaceConsole: true              //是否替换console.log
});


module.exports = log4js;

写应用index.js,在这里演示怎么使用

let log4js = require('./log_config');

let defaultLog = log4js.getLogger('default') ;        //此处使用category的值
let writeLog = log4js.getLogger('write_db') ;        //此处使用category的值
let readLog = log4js.getLogger('read_db')    ;      //此处使用category的值

defaultLog.info("default");
writeLog.info("000");
readLog.info("111");

这就 OK 了

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了