本文介绍如何在Linux系统中利用logrotate工具实现Node.JS应用日志的轮转、压缩和管理。logrotate是Linux系统自带的日志管理工具,可自动化执行这些操作。
步骤一:安装logrotate
多数Linux发行版预装了logrotate。若未安装,请使用系统包管理器安装。例如,在Debian/Ubuntu系统中,使用以下命令:
sudo apt-get update sudo apt-get install logrotate
步骤二:配置logrotate
logrotate配置文件通常位于/etc/logrotate.conf或/etc/logrotate.d/目录下。建议为Node.js应用创建独立配置文件,例如/etc/logrotate.d/myapp-logs,并添加以下配置:
/path/to/your/node/app/logs/*.log { daily rotate 7 compress delaycompress missingok notifempty create 0640 user group }
配置说明:
- daily:每日轮转日志。
- rotate 7:保留7个轮转后的日志文件。
- compress:压缩轮转后的日志文件。
- delaycompress:延迟压缩,直到下次轮转。
- missingok:日志文件缺失时不报错。
- notifempty:日志文件为空时不轮转。
- create 0640 user group:创建新日志文件,权限为0640,用户和组由系统决定。 请根据实际情况修改user和group。
步骤三:测试logrotate配置
使用以下命令测试配置:
sudo logrotate -d /etc/logrotate.d/myapp-logs
-d选项用于测试模式,不会实际执行轮转。 若无错误,则表示配置正确。 移除-d选项则会实际执行轮转。
步骤四:监控日志轮转
logrotate通常在系统启动时自动运行。您可以查看/var/lib/logrotate/status文件来监控日志轮转状态。
注意事项:
确保您的Node.js应用使用合适的日志库(如winston或pino)并将日志写入logrotate配置中指定的路径。 请将/path/to/your/node/app/logs/*.log替换为您的实际日志文件路径。 正确配置用户和组权限,确保logrotate能够访问和操作日志文件。