在Debian系統上實施Node.js應用程序的日志清理策略,可以遵循以下步驟:
logrotate
工具logrotate
是一個用于管理日志文件的系統工具,它可以自動輪轉、壓縮和刪除舊日志文件。
logrotate
sudo apt-get update
sudo apt-get install logrotate
logrotate
創建或編輯 /etc/logrotate.d/nodejs
文件,添加以下內容:
/path/to/your/nodejs/logs/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 root adm
}
解釋:
daily
: 每天輪轉日志。missingok
: 如果日志文件不存在,不會報錯。rotate 7
: 保留7個輪轉后的日志文件。compress
: 壓縮舊日志文件。delaycompress
: 延遲壓縮,直到下一次輪轉。notifempty
: 如果日志文件為空,不進行輪轉。create 0640 root adm
: 創建新日志文件時的權限和所有者。pm2
管理 Node.js 應用如果你使用 pm2
來管理你的 Node.js 應用,可以利用 pm2
的日志管理功能。
pm2
sudo npm install pm2 -g
pm2
日志管理你可以使用 pm2
的配置文件來管理日志。創建一個 ecosystem.config.js
文件:
module.exports = {
apps: [{
name: 'my-app',
script: 'app.js',
out_file: '/path/to/your/nodejs/logs/out.log',
error_file: '/path/to/your/nodejs/logs/error.log',
log_date_format: 'YYYY-MM-DD HH:mm Z',
time: true,
merge_logs: true,
max_size: '10M',
instances: 1,
exec_mode: 'cluster'
}]
};
然后使用 pm2 start ecosystem.config.js
啟動應用。
pm2 logs
查看日志pm2 logs my-app
pm2 logrotate
自動輪轉日志pm2
默認會自動輪轉日志文件,但你也可以手動觸發:
pm2 logrotate
cron
定時任務如果你不想使用 logrotate
或 pm2
,可以手動設置一個 cron
定時任務來清理日志文件。
crontab
crontab -e
0 0 * * * find /path/to/your/nodejs/logs -type f -name "*.log" -mtime +7 -exec rm -f {} \;
解釋:
0 0 * * *
: 每天午夜執行。find /path/to/your/nodejs/logs -type f -name "*.log" -mtime +7 -exec rm -f {} \;
: 查找并刪除7天前的日志文件。以上方法可以幫助你在Debian系統上實施Node.js應用程序的日志清理策略。根據你的具體需求和偏好,可以選擇使用 logrotate
、pm2
或 cron
來管理日志文件。