pm2-logrotate是一个npm管理模块

1.安装命令 pm2 install pm2-logrotate, 如果在服务上安装特别慢的话,需要配置淘宝源

npm config set registry https://registry.npm.taobao.org/
 

2.查看pm2-logrotate默认的参数

pm2 conf pm2-logrotate


3.设置参数命令

pm2 set pm2-logrotate:max_size 1K
命令设置具体的参数,支持的参数有以下:

l Compress:是否通过gzip压缩日志

l max_size:单个日志文件的大小,比如上图中设置为1K(这个其实太小了,实际文件大小并不会严格分为1K)

l retain:保留的日志文件个数,比如设置为10,那么在日志文件达到10个后会将最早的日志文件删除掉

l dateFormat:日志文件名中的日期格式,默认是YYYY-MM-DD_HH-mm-ss,注意是设置的日志名+这个格式,如设置的日志名为main_out.log,那就会生成main_out_YYYY-MM-DD_HH-mm-ss.log名字的日志文件

l rotateModule:把pm2本身的日志也进行分割

l workerInterval:设置启动几个工作进程监控日志尺寸,最小为1

rotateInterval:设置强制分割,默认值是0 0 * * *,意思是每天晚上0点分割

设置完毕后可通过pm2 conf pm2-logrotate来查看详细的配置。

可以尝试使用pm2 set pm2-logrotate:max_size 1K (1KB)设置日志文件最大为1KB 代码中console.log的内容会输出到 /home/username/.pm2/logs/app-out-0.log, 大小达到1KB就会自动生成 app-out-0__2018-01-25_16-58-16.log这种格式的日志文件。 在/home/username/.pm2/logs/(默认路径,可以配置)路径下还有

app-error-0.log
pm2-logrotate-out-1.log
pm2-logrotate-error-1.log 几个文件,app-out-0.log文件记录的就是console.log输出,app-error-0.log记录的是错误输出,pm2-logrotate-out-1.log和pm2-logrotate-error-1.log分别记录的是分割的日志文件,是这样的内容:
4.配置完成后最后重启pm2

pm2 restart all

5.存在的问题

(1)利用的默认的参数进行分割的时候,项目中一直在使用的日志文件由于前期未分割,可能过大,所以分割前如果觉得这部分文件有用,可以备份一下,然后删掉之后再进行分割;

(2)可以用df -h查看各文件夹磁盘占用率,如果是删掉某个大的文件,磁盘空间未释放的情况下,可以利用重启项目服务,服务包括pm2-logrotate 以及项目本身;