pm2 自身的日志文件 ~/.pm2/pm2.log,下面讲的是 pm2 app(应用)的日志文件。
默认日志
每个 app(应用) 会生成 instances*2 (实例数×2)个日志文件。
- app 的标准输出日志文件
- ~/.pm2/logs/<app name>-out-<instance id>.log
- app 的错误输出日志文件
- ~/.pm2/logs/<app name>-error-<instance id>.log
合并输出类型日志(-l)
每个 app(应用) 会生成 instances+1 (实例数+1)个日志文件。
- app 的日志文件
- ~/.pm2/logs/<app name>-<instance id>.log
不影响默认日志。
可以指定合并输出类型的日志文件名(-l app.log)
输出日志文件名为 app-<instance id>.log
合并实例日志(–merge-logs)
同一 app(应用)的所有 instances(实例)日志文件放在一起。
- app 的默认标准输出日志文件
- ~/.pm2/logs/<app name>-out.log
- app 的默认错误输出日志文件
- ~/.pm2/logs/<app name>-error.log
- app 的合并输出类型日志文件
- ~/.pm2/logs/<app name>.log
禁止默认日志
- 禁止默认的标准输出日志文件(-o /dev/null)
- 禁止默认的错误输出日志文件(-e /dev/null)
示例:app 生成一个日志文件简化日志管理
pm2 -n app -i 0 -l app.log -o /dev/null -e /dev/null --merge-logs start app.js
这样只会生成一个日志文件 app.log。
定期清理日志
不建议使用 pm2-logrotate ,太多问题了(详见: 控制pm2的日志文件大小 )。
还是使用 logrotate 服务靠谱(参考 Setting up a native logrotate 被遗忘的Logrotate | 火丁笔记):
/etc/logrotate.d/pm2-root
/root/.pm2/pm2.log /root/.pm2/logs/*.log { daily size 1M rotate 10 create 600 nobody nobody missingok notifempty compress sharedscripts copytruncate }