pm2 and logrotate

nodejs的应用一般都用pm2托管,但是pm2本身的日志处理比较弱,时间久了日志文件会变得很大,需要一些日志切割的策略。

linux一般使用logrotate来作日志切割,相关介绍见understanding-logrotate-utility

demo配置如下,假设你的nodejs应用使用www-data启动:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
${loggerRoot}/*.log {
rotate 7
daily
dateext
dateformat .%Y%m%d
compress
missingok
notifempty
sharedscripts
postrotate
su -l www-data -c 'pm2 reloadLogs'
endscript

su www-data www-data
};

原理就是在logrotate之后调用pm2 reloadLogs