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 相关文章推荐
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
Mar 09 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
JavaScript DOM节点操作方法总结
Aug 23 Javascript
Centos7 中 Node.js安装简单方法
Nov 02 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
整理关于Bootstrap表单的慕课笔记
Mar 29 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
微信小程序实现分享朋友圈的图片功能示例
Jan 18 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
Mar 06 Javascript
js回到页面指定位置的三种方式
Dec 17 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
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
四个PHP非常实用的功能
2015/09/29 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
详解php中 === 的使用
2016/10/24 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
js数组的基本操作(很全自己整理的)
2014/10/16 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
AngularJs Scope详解及示例代码
2016/09/01 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
JS pushlet XMLAdapter适配器用法案例解析
2020/10/16 Javascript
python新手经常遇到的17个错误分析
2014/07/30 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
感恩老师的演讲稿
2014/05/06 职场文书
关于感恩的演讲稿500字
2014/08/26 职场文书
语文课外活动总结
2014/08/27 职场文书
微信早安问候语
2015/11/10 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers