pm2日志切割工具:pm2-logrotate

参考:https://segmentfault.com/a/1190000021351573

why

先来看两个问题

问:pm2-logrotate是什么?
答:pm2-logrotate可以理解为是一个pm2的插件,它扩充了pm2本身没有功能:日志管理,所以它的运行需要依靠pm2,想用它必须先安装pm2才可以。

问:为什么有pm2-logrotate?
答:因为pm2本身没有日志分割功能,日志只能存在一个文件中,时间久了日志文件非常大,查看起来很麻烦,并且一些日志过一段时间后可能就没用了,依然留着对空间也是浪费,有了该插件,可以将日志文件根据我们的设定进行分割,比如按天进行分割,把每天的日志文件分别存储,这样查看起来是不是比较方便?并且还可以设置日志文件的最大总数,比如我们设置日志文件最多100个,那么当日志文件超过100个后会自动将最早的日志文件删除掉,我们也不用再花时间去整理日志文件了,是不是很省心?

how

1. 安装

pm2 install pm2-logrotate

2. 查看默认配置

pm2 conf

可看到默认配置如下图所示,其配置文件一般在:/root/.pm2/module_conf.json

$ 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
  • max_size (Defaults to 10M): 配置项默认是 10MB,并不意味着切割出来的日志文件大小一定就是 10MB,而是检查时发现日志文件大小达到 max_size,则触发日志切割。
  • retain (Defaults to 30 file logs): 这个数字是在任何一个时间保留已分割的日志的数量,这意味着如果您保留7个,那么您将最多有7个已分割日志和您当前的一个
  • compress (Defaults to false): 对所有已分割的日志启用 gzip 压缩
  • dateFormat (Defaults to YYYY-MM-DD_HH-mm-ss) : 文件名格式化的规则
  • rotateModule (Defaults to true) : 像其他应用程序一样分割 pm2模块的日志
  • workerInterval (Defaults to 30 in secs) : 您可以控制工作线程检查日志大小的间隔(最小值为1)单位为秒(控制模块检查log日志大小的循环时间,默认30s检查一次)
  • rotateInterval (Defaults to 0 0 * * * everyday at midnight): 多久备份一次,默认值是0 0 * * *,意思是每天晚上0点分割

3. 如何配置

pm2 set pm2-logrotate:max_size 500K 
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress true 
pm2 set pm2-logrotate:workerInterval 60

4. 使其生效

pm2 restart all

你可能感兴趣的:(pm2日志切割工具:pm2-logrotate)