在 Linux 环境下,JS 日志过大通常指 Node.js 应用日志、前端构建日志或浏览器/服务端 JS 运行日志占满磁盘。下面按常见场景 + 处理方案说明。
# 查看磁盘占用
df -h
# 查找大日志文件
du -sh /var/log/*
du -sh ~/logs/*
# 查找大于 100M 的文件
find / -type f -size +100M 2>/dev/null
常见 JS 日志位置:
/var/log/*.log、pm2 logs、项目 logs//var/log/nginx//var/lib/docker/containers/> app.log
# 或
truncate -s 0 app.log
rm -f app.log.2023*
适用于服务器日志
示例 /etc/logrotate.d/nodejs:
/var/log/nodejs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
应用:
logrotate -d /etc/logrotate.d/nodejs # 测试
logrotate -f /etc/logrotate.d/nodejs # 强制执行
不要自己写 fs.appendFile
推荐使用:
winstonpinobunyanconst { createLogger, transports } = require('winston');
require('winston-daily-rotate-file');
const transport = new transports.DailyRotateFile({
filename: 'logs/app-%DATE%.log',
datePattern: 'YYYY-MM-DD',
maxSize: '20m',
maxFiles: '14d'
});
pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
/var/lib/docker/containers/xxx/json.log 爆炸
/etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
重启:
systemctl restart docker
npm run build -- --silent
✅ 日志轮转
✅ 控制日志级别(生产用 info / error)
✅ 不打印大对象
✅ 容器日志限大小
✅ 定期监控磁盘
如果你愿意,可以告诉我:
我可以给你精确配置示例。