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 相关文章推荐
JavaScript DOM学习第四章 getElementByTagNames
Feb 19 Javascript
jQuery下拉美化搜索表单效果代码分享
Aug 25 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
D3.js实现折线图的方法详解
Sep 21 Javascript
React进阶学习之组件的解耦之道
Aug 07 Javascript
浅谈vue的踩坑路
Aug 31 Javascript
深入理解Vue 的条件渲染和列表渲染
Sep 01 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
Mar 17 Javascript
JS实现关键词高亮显示正则匹配
Jun 22 Javascript
JS判断数组四种实现方法详解
Jun 29 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 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递归方法实现无限分类实例代码
2014/02/28 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
看了就知道什么是JSON
2007/12/09 Javascript
jQuery Validate插件实现表单强大的验证功能
2015/12/18 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
URL中“#” “?” &“”号的作用浅析
2017/02/04 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
nodejs 生成和导出 word的实例代码
2018/07/31 NodeJs
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
Python实现数据库编程方法详解
2015/06/09 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
dataframe设置两个条件取值的实例
2018/04/12 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
基于pandas中expand的作用详解
2019/12/17 Python
html+css实现自定义图片上传按钮功能
2019/09/04 HTML / CSS
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
办护照工作证明范本
2014/01/14 职场文书
担保书怎么写
2014/04/01 职场文书
2014年双拥工作总结
2014/11/21 职场文书
会议开幕词
2015/01/28 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
JS实现简单九宫格抽奖
2022/06/28 Javascript