Node.js log4js日志管理详解


Posted in Javascript onJuly 31, 2018

前言

在Nodejs中使用express框架并没有自带的日志模块,我们可以选择log4js来完成日志记录的功能。

如果用过JAVA中log4j的同学,肯定对日志并不陌生,学习log4js会更得心应手的。

Node.js 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的每一项里面设置。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jquery 插件学习(六)
Aug 06 Javascript
基于JavaScript自定义构造函数的详解说明
Apr 24 Javascript
了不起的node.js读书笔记之例程分析
Dec 22 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
Sep 05 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 Javascript
详解Vue自定义过滤器的实现
Jan 10 Javascript
微信小程序 扎金花简单实例
Feb 21 Javascript
VUE中使用MUI方法
Feb 12 Javascript
详解关于html,css,js三者的加载顺序问题
Apr 10 Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 Javascript
如何通过JS实现转码与解码
Feb 21 Javascript
jQuery 实现倒计时天,时,分,秒功能
Jul 31 #jQuery
JS实现移动端触屏拖拽功能
Jul 31 #Javascript
JavaScript new对象的四个过程实例浅析
Jul 31 #Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 #Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 #Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
Jul 31 #Javascript
vue实现word,pdf文件的导出功能
Jul 31 #Javascript
You might like
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
JavaScript QueryString解析类代码
2010/01/17 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
2015/10/19 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
Python中文字符串截取问题
2015/06/15 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
在python 中实现运行多条shell命令
2019/01/07 Python
深入了解Python enumerate和zip
2020/07/16 Python
英语系本科生个人求职信
2013/09/21 职场文书
大学活动邀请函
2014/01/28 职场文书
单身联谊活动方案
2014/01/29 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
合作投资意向书
2014/04/01 职场文书
公司任命书模板
2014/06/06 职场文书
小组名称和口号
2014/06/09 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
公司股东出资证明书
2014/11/01 职场文书
综合实践活动报告
2015/02/05 职场文书
副校长2015年教育教学工作总结
2015/07/27 职场文书
2015年村级财务管理制度
2015/08/04 职场文书