PM2日志优化

默认pm2日志存在的问题

  1. 缺少日志时间戳;
  2. 缺少日志分片;
  3. 没有日志rotate 功能,定期清除防止磁盘爆满

PM2自带的日志

https://pm2.keymetrics.io/docs/usage/log-management/

PM2的日志扩展插件

pm2-logrotate

默认情况下,处理日志临近饱满磁盘的办法

删除文件

1 查看日志文件位置

1
pm2 show <app name>

2 删除日志

1
rm -rf xxx

3 重启应用

重启应用会自动再生成日志文件!

1
pm2 relaod <app name>

pm2清洗日志命令

这将清空当前pm2应用程序日志!

1
2
3
pm2 flush

pm2 flush <api> # Clear the logs for the app with name/id matching <api>

pm2-logrotate基本使用

安装

1
2
3
4
5
6
7
8
pm2 install pm2-logrotate

# output

[PM2][Module] Installing NPM pm2-logrotate module
[PM2][Module] Calling [NPM] to install pm2-logrotate ...
+ pm2-logrotate@2.7.0
added 213 packages from 236 contributors and audited 214 packages in 9.267s

image

查看rotate配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
pm2 conf

# output

Module: pm2-logrotate
$ pm2 set pm2-logrotate:max_size 10M
$ pm2 set pm2-logrotate:retain 30
$ pm2 set pm2-logrotate:compress false
$ pm2 set pm2-logrotate:dateFormat YYYY-MM-DD_HH-mm-ss
$ pm2 set pm2-logrotate:workerInterval 30
$ pm2 set pm2-logrotate:rotateInterval 0 0 * * *
$ pm2 set pm2-logrotate:rotateModule true
Module: module-db-v2
$ pm2 set module-db-v2:pm2-logrotate [object Object]

查看日志分片

image

修改配置

1
pm2 set pm2-logrotate:<conf key> <conf val>