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