最近在做 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