nodejs之日志管理

不管是什么项目,日志一直是一个重要组成部分,它可以随时供你查看重要数据信息,在nodejs中查看实时日志可以用pm2 logs查看,如果用户比较多怎么办了?如何将正常日志和错误日志分开?如何对每天的日志归档?下面我们一起来看下。

  1. 使用log4js创建日志文件,新建logs目录,在目录下新建cheese.log和logger.js文件
    在这里插入图片描述
  2. 在logger.js中加入以下代码
var log4js = require('log4js');
log4js.configure({
  appenders: {
    console:{ type: 'console' },
    cheeseLogs:{ type: 'file', filename: 'logs/cheese.log', category: 'cheese' }
  },
     categories: {

        default: {appenders: ['console', 'cheeseLogs'], level: 'info'}

    }
});
var logger = log4js.getLogger('cheese');

module.exports = logger;
  1. 修改router.js代码
    在这里插入图片描述
  2. 发送请求打印日志看下
    在这里插入图片描述
    控制台输出实时日志,在cheese.log文件中也记录了这条日志,那么问题来了,cheese.log中记录的是所有日志信息,有时我们需要将正常日志和错误日志分开,怎么办!!

下面来一起看下nodejs的另外一个日志控制方法,使用pm2控制日志输出

  1. 新建app.json文件,添加以下配置
{
  "script": "app.js",
  "instances": 4,//进程数
  "exec_mode": "cluster",
  "error_file": "err.log",
  "out_file": "out.log",
  "merge_logs": true,
  "log_date_format": "YYYY-MM-DD hh:mm:ss"
}
  1. 使用pm2 start app.json启动项目
    在这里插入图片描述
    可以看到项目自动创建了err.log和out.log两个文件夹,它们分别保存了错误日志和正常日志。
    运行项目我们发现cheese.log,err.log和out.log都是存放的总的日志信息,我们想把日志拆分成按日期分类的怎么办了?

一起来看下nodejs提供的另外一个库log-master

  1. 新建spliteLog目录,在app.js中添加以下代码
var logMaster = require('log-master');
logMaster.split({ //切割,目前唯一的功能
  "from": { //源文件夹,可多选。
    "app": "./"
  },
  "Suffix": [".log"], //要切割的文件类型,可多选。默认 [".log"]
  "to": "./splitLog", //目标文件夹,log都会到这里。
  "Interval": 1000 * 60 * 60 * 24, //切割时间间隔,默认一天。
  "timeFormat": "yyyy年MM月dd日HH时mm分ss秒", //时间格式(生成的文件夹名),默认为yyyy年MM月dd日HH时mm分ss秒
  "startTime": "23:59" //开始时间,默认零点,精确到秒的话就:"00:00:00"
});
  1. 运行项目后,我们就能看到按日期分割的日志了
    在这里插入图片描述

总结:nodejs日志管理代码简单,功能强大,很方便管理项目日志信息。log4js,log-master以及pm2的日志管理还有很多小功能,这里就不多说,大家根据需求来使用!!

上一篇:nodejs之远程linux服务器部署
下一篇:nodejs之utility,crypto使用

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值