在Debian系统中,可以使用systemd
服务和logrotate
工具来自动化处理Node.js应用程序的日志。以下是具体步骤:
systemd
服务文件:在/etc/systemd/system
目录下,创建一个新的服务文件,例如nodejs-app.service
。使用文本编辑器打开该文件,例如:
sudo nano /etc/systemd/system/nodejs-app.service
在服务文件中,添加以下内容(根据实际情况修改):
[Unit]
Description=Node.js Application
After=syslog.target network.target
[Service]
User=<your-user>
WorkingDirectory=/path/to/your/nodejs/app
ExecStart=/usr/bin/node /path/to/your/nodejs/app/app.js
Restart=always
Environment=NODE_ENV=production
Environment=NODE_OPTIONS=--max_old_space_size=128
[Install]
WantedBy=multi-user.target
确保替换<your-user>
为运行Node.js应用程序的用户,以及将/path/to/your/nodejs/app
和/path/to/your/nodejs/app/app.js
替换为实际的路径。
systemd
配置:保存并关闭文件后,运行以下命令以重新加载systemd
配置:
sudo systemctl daemon-reload
使用以下命令启动Node.js应用程序,并设置为开机自启:
sudo systemctl start nodejs-app.service
sudo systemctl enable nodejs-app.service
logrotate
:在/etc/logrotate.d
目录下,创建一个新的日志轮转配置文件,例如nodejs-app.logrotate
。使用文本编辑器打开该文件,例如:
sudo nano /etc/logrotate.d/nodejs-app
在配置文件中,添加以下内容(根据实际情况修改):
/path/to/your/nodejs/app/logs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 <your-user> adm
}
确保替换/path/to/your/nodejs/app/logs/*.log
为实际的日志文件路径,以及将<your-user>
替换为运行Node.js应用程序的用户。
运行以下命令以测试日志轮转配置是否正常工作:
sudo logrotate -f /etc/logrotate.d/nodejs-app
现在,Node.js应用程序的日志将在Debian系统中自动处理,每天轮转一次,并保留最近7天的日志。