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 以及项目本身;