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的12个网站推荐
Apr 28 Javascript
js控制的遮罩层实例介绍
May 29 Javascript
使用jQuery动态加载js脚本文件的方法
Apr 03 Javascript
JavaScript对象学习小结
Sep 02 Javascript
jQuery中trigger()与bind()用法分析
Dec 18 Javascript
jquery实现的判断倒计时是否结束代码
Feb 05 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
学习使用jQuery表单验证插件和日历插件
Feb 13 Javascript
令按钮悬浮在(手机)页面底部的实现方法
May 02 Javascript
Node.js中的child_process模块详解
Jun 08 Javascript
微信小程序授权登录及解密unionId出错的方法
Sep 26 Javascript
JavaScript定时器常见用法实例分析
Nov 15 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的输出:缓存并压缩动态页面
2013/06/11 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
2017/04/26 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
vue mounted组件的使用
2018/06/18 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
详解在Python和IPython中使用Docker
2015/04/28 Python
python中使用序列的方法
2015/08/03 Python
python实现文本文件合并
2015/12/29 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
浅析python,PyCharm,Anaconda三者之间的关系
2019/11/27 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
解决Python 函数声明先后顺序出现的问题
2020/09/02 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
英国莱斯特松木橡木家具网上商店:Choice Furniture Superstore
2019/07/05 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
大学生职业生涯规划书前言
2014/01/09 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
大学生自荐材料范文
2014/12/30 职场文书
七年级上册语文教学计划
2015/01/22 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
宪法宣传标语100条
2019/10/15 职场文书
pandas进行数据输入和输出的方法详解
2022/03/23 Python
简单聊聊Golang中defer预计算参数
2022/03/25 Golang
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏