在 Debian 系统中,日志轮转通常由 logrotate
工具管理。Node.js 应用程序的日志轮转可以通过配置 logrotate
来实现。以下是设置 Node.js 日志轮转的步骤:
安装 logrotate:
大多数 Debian 系统默认已经安装了 logrotate
。如果没有安装,可以使用以下命令进行安装:
sudo apt-get update
sudo apt-get install logrotate
创建 logrotate 配置文件:
为你的 Node.js 应用程序创建一个 logrotate
配置文件。通常,这个文件可以放在 /etc/logrotate.d/
目录下。例如,假设你的 Node.js 应用程序的日志文件路径是 /var/log/myapp.log
,你可以创建一个名为 myapp
的配置文件:
sudo nano /etc/logrotate.d/myapp
编辑 logrotate 配置文件: 在配置文件中添加以下内容:
/var/log/myapp.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
解释:
daily
:每天轮转一次日志。missingok
:如果日志文件不存在,不会报错。rotate 7
:保留7个轮转日志文件。compress
:压缩旧的日志文件。notifempty
:如果日志文件为空,不进行轮转。create 0640 root adm
:创建新的日志文件,权限为 0640
,属主为 root
,属组为 adm
。测试 logrotate 配置:
你可以使用以下命令来测试 logrotate
配置是否正确:
sudo logrotate -f /etc/logrotate.d/myapp
这个命令会强制执行一次日志轮转,即使日志文件没有达到轮转条件。
自动轮转:
logrotate
通常由 cron 定时任务自动执行。你可以检查 /etc/cron.daily/logrotate
文件,确保它包含了 logrotate
的调用:
cat /etc/cron.daily/logrotate
输出应该类似于:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
通过以上步骤,你就可以在 Debian 系统中为 Node.js 应用程序设置日志轮转了。