前言
在Nodejs中使用express框架并没有自带的日志模块,我们可以选择log4js来完成日志记录的功能。
如果用过JAVA中log4j的同学,肯定对日志并不陌生,学习log4js会更得心应手的。
项目要用log4js记录日志,网上找的教程都是很久以前的,新版本log4js跟旧版本有一些不同,看文档结合旧版本配置了能用的log4js,记录一下,当前log4js版本2.3.12,采用按天分片的方式,同时输出到控制台和文件。
log4js单独配置到一个文件,其他要使用的引用这个文件。
log-config.js:
const log4js = require(\'log4js\') log4js.configure({ replaceConsole: true, appenders: { stdout: {//控制台输出 type: \'stdout\' }, req: {//请求日志 type: \'dateFile\', filename: \'logs/reqlog/\', pattern: \'req-yyyy-MM-dd.log\', alwaysIncludePattern: true }, err: {//错误日志 type: \'dateFile\', filename: \'logs/errlog/\', pattern: \'err-yyyy-MM-dd.log\', alwaysIncludePattern: true }, oth: {//其他日志 type: \'dateFile\', filename: \'logs/othlog/\', pattern: \'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\' } } }) exports.getLogger = function (name) {//name取categories项 return log4js.getLogger(name || \'default\') } exports.useLogger = function (app, logger) {//用来与express结合 app.use(log4js.connectLogger(logger || log4js.getLogger(\'default\'), { format: \'[:remote-addr :method :url :status :response-timems][:referrer HTTP/:http-version :user-agent]\'//自定义输出格式 })) }
使用:
const log4js= require(\'./log-config\') const logger = log4js.getLogger()//根据需要获取logger const errlogger = log4js.getLogger(\'err\') const othlogger = log4js.getLogger(\'oth\') //结合express使用,记录请求日志 app = express() log4js.useLogger(app,logger)//这样会自动记录每次请求信息,放在其他use上面 //手动记录,可以代替console.log logger.info(\'test info 1\') errlogger.err(\'test error 1\') othlogger.info(\'test info 2\')
新版本的 category不再包含在appenders里面,而是放在与appenders同级的categories里面,appenders要有名字,用来指定categories每一项的appender,日志等级改为在categories的每一项里面设置。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
© 版权声明
THE END
暂无评论内容