配置
log4js.config
1 | { |
pm2.json
参考:PM2 配置文件
1 | { |
日志插件 pm2-intercom
对于一个线上的项目,可能需要一些其他手段来对日志做维护管理(例如日志文件的大小,以及日志保存多久)。既然现在说 PM2,就要看下其日志插件:pm2-logrotate
来看下具体配置:
1 | C:\Users\94391>pm2 install pm2-intercom |
定时轮询
rotateInterval 和 workerInterval 都有定时的作用。
前者通过编写 cron 表达式,约定每隔多少时间强制检查日志的状态。
1 | # 每日零点 |
后者 workerInterval 是约定固定秒数来查询日志状况。(默认 30 秒)
日志分割条件
max_size 和 retain 分别来约束日志的大小和文件个数。
每次定时轮询触发后,会对文件大小、数量进行检查。超过约定的值,则会重新创建新文件。
实际运用
假设单日日志产出为 10G,按照 rotateInterval 每天零点进行切割日志,虽然有章法,但如果要从 10G 大小的日志文件中排查问题,这似乎有些困难。
我们可以设置 max_size 为 100M,这样 10G 总大小的文件,将在一天中被切成 100 个。
甚至如果每天的访问量有迹可循,比如上午 9-12 点会出现高峰,其他时间相对低频。可以进一步优化 workerInterval 和 rotateInterval cron 表达式:
1 | pm2 set pm2-logrotate:workerInterval 3600 # 每小时轮训检查 |
这样在高访问时间段,可以更有效地分割日志。(美中不足的是如果符合日志分割条件,00:00 和 00:30 时,会出现两份日志,强迫症表示不太适应)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!
