Debian JS日志清理与治理最佳实践
一 治理总览与优先级
二 使用 logrotate 做系统级轮转
/var/log/nodejs/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 nodejs nodejs
postrotate
systemctl reload nodejs >/dev/null 2>&1 || true
endscript
}
sudo logrotate -d /etc/logrotate.confsudo logrotate -f /etc/logrotate.d/nodejs/var/log/syslog {
daily
rotate 7
compress
delaycompress
missingok
notifempty
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}
以上做法覆盖Node.js应用日志与系统日志的轮转与清理,确保稳定可靠。
三 在 Node.js 应用内控制日志体量
const { createLogger, transports } = require('winston');
createLogger({
level: 'info',
transports: [
new transports.File({
filename: 'app.log',
maxsize: 10 * 1024 * 1024, // 10 MB
maxFiles: 7
})
]
});
四 应急清理与自动化维护
sudo truncate -s 0 /var/log/nodejs/app.logfind /var/log/nodejs -type f -name "*.log" -mtime +7 -delete0 2 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nodejs0 3 * * * find /var/log/nodejs -type f -name "*.log" -mtime +7 -delete五 监控 分析与容量规划
tail -f /var/log/syslog、grep "ERROR" /var/log/syslogtail -f /var/log/nodejs/*.log