在Ubuntu系统中,Node.js应用程序的日志轮转可以通过 logrotate 工具来实现。以下是配置Node.js日志轮转的基本步骤:
在大多数Ubuntu版本中,logrotate已经预装。如果没有,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install logrotate
在 /etc/logrotate.d/
目录下创建一个新的配置文件,例如 nodejs
:
sudo nano /etc/logrotate.d/nodejs
在打开的文件中,添加以下内容并保存。请根据实际情况替换 /path/to/your/nodejs/app/logs/
为你的Node.js应用程序日志文件的路径。
/path/to/your/nodejs/app/logs/*.log {
daily rotate 7
compress
missingok
notifempty
create 0640 root adm
}
daily
: 每天轮转日志。rotate 7
: 保留7个轮转后的日志文件。compress
: 轮转后的日志文件进行压缩。missingok
: 如果日志文件不存在,不会产生错误。notifempty
: 如果日志文件为空,不进行轮转。create 0640 root adm
: 创建新的日志文件,权限为0640,属主为root,属组为adm。使用以下命令测试logrotate配置是否正确:
sudo logrotate -f /etc/logrotate.d/nodejs
如果没有错误信息,说明配置正确。
logrotate会自动按照配置文件中的设置执行日志轮转。你可以通过查看 /var/lib/logrotate/status
文件来查看日志轮转的状态。
如果你使用PM2来管理Node.js应用,可以利用其内置的日志管理功能来实现日志轮转。
启用PM2日志轮转:
pm2 install pm2-logrotate
配置PM2轮转策略:
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress true
pm2 set pm2-logrotate:rotateInterval "0 0 * * *"
重启PM2:
pm2 restart all
PM2会自动在 /.pm2/logs/
目录下轮转日志。
通过以上步骤,你可以在Ubuntu系统中配置Node.js应用程序的日志轮转,确保日志文件的管理既高效又安全。