每天学习一点点,成功增加一大步

NodeJs笔记:日志管理工具之 log4js

NodsJS zhanghui 1580℃

最近在做 nodejs 时遇到一个比较好用的日志管理工具 log4js ,它在使用上个人认为比较简单,要比 forever 好用很多,官方的文档将使用的方法也说得清楚、直接,让人看了易懂。

首先是在项目中安装 log4js。

npm install --save log4js

log4js级别( 大小写不敏感 ):

ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF

它的基本使用:

import * as log4js from 'log4js';
// cheese.log 就是日志保存的路径,可以在前面带上路径。如:./logger/cheese.log
log4js.configure({
    appenders: { cheese: { type: 'file', filename: 'cheese.log' } },
    categories: { default: { appenders: ['cheese'], level: 'error' } }
});

const logger = log4js.getLogger('cheese');
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.');

也可以 log 输出到文件中:多个文件,不同 level。

log4js.configure({
    appenders: {
        out: { type: 'stdout' },//设置是否在控制台打印日志
        info: { type: 'file', filename: './logs/info.log' },
        just- errors: { type: 'file', filename: './logs/error.log' },
    'error': { type: 'logLevelFilter', appender: 'just-errors', level: 'error' }
 },
    categories: {
    default: { appenders: ['out', 'info', 'error'], level: 'info' }//去掉'out'。控制台不打印日志
}
});
var LogFile = log4js.getLogger();
LogFile.info('You can find logs-files in the log-dir');
var LogFile_info = log4js.getLogger('info');
LogFile_info.info('~~~~~~~info log~~~~~~~~~');
var LogFile_just-errors = log4js.getLogger('error');
LogFile_just.error('~~~~~~~error log~~~~~~~~~');
console.log("log_start end!");

还可以在配置中采用另一种通用的日期方式的日志记录方式。

log4js.configure({
    replaceConsole: true,
    appenders: {
        stdout: {//控制台输出
            type: 'stdout'
        },
        req: {//请求日志
            type: 'dateFile',
            filename: 'logger/reqlog/',// 需要手动建好目录
            // maxLogSize: 1024,// 只在 type: 'file' 中才支持
            pattern: 'yyyy-MM/req-yyyy-MM-dd.log',// 指定pattern后无限备份
            alwaysIncludePattern: true// 不指定pattern时若为true会使用默认值'.yyyy-MM-dd'
        },
        err: {//错误日志
            type: 'dateFile',
            filename: 'logger/errlog/',
            pattern: 'yyyy-MM/err-yyyy-MM-dd.log',
            alwaysIncludePattern: true
        },
        oth: {//其他日志
            type: 'dateFile',
            filename: 'logger/othlog/',
            pattern: 'yyyy-MM/oth-yyyy-MM-dd.log',
            alwaysIncludePattern: true
        }
    },
    categories: {
        default: { appenders: ['stdout', 'req'], level: 'debug' },//appenders:采用的appender,取appenders项,level:设置级别
        err: { appenders: ['stdout', 'err'], level: 'error' },
        oth: { appenders: ['stdout', 'oth'], level: 'info' }
    }
})

更多的信息参考官方文档:

https://www.npmjs.com/package/log4js

转载请注明:隨習筆記 » NodeJs笔记:日志管理工具之 log4js

喜欢 (0)