Linux 下 JS(JavaScript)日志过大,通常不是 Node.js 或前端 JS 本身的问题,而是运行环境、日志配置或业务行为导致的。下面按常见原因 → 对应解决方案给你系统梳理。
现象
/var/log 或项目目录下的 .log 文件持续增长原因
logrotate解决
# 查看是否配置
ls /etc/logrotate.d/
# 示例配置
/var/log/myapp/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
现象
console.log原因
解决
if (process.env.NODE_ENV === 'production') {
console.log = () => {};
}
或更推荐:
winston / pino / log4js现象
Error: connect ECONNREFUSED
Error: connect ECONNREFUSED
...
原因
解决
try {
await request();
} catch (err) {
logger.error('request failed', err.message);
}
docker logs container_id # 无限增长
解决
# daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
}
}
pm2 logs # 无限增长
解决
pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 10M
StandardOutput=append:/var/log/app.log
现象
解决
mongoose.set('debug', false);
现象
原因
解决
# 查看哪个日志大
du -sh /var/log/*
# 实时查看增长
watch -n 1 "ls -lh app.log"
# 查看日志内容
tail -f app.log
# 查找异常频率
grep -c "ERROR" app.log
| 项目 | 建议 |
|---|---|
| 日志库 | winston / pino |
| 日志级别 | error / warn / info |
| 日志轮转 | logrotate |
| 容器日志 | 限大小 |
| 生产环境 | 禁用 console.log |
| 异常 | 只记录一次 |
Linux 下 JS 日志过大,90% 是因为“日志没轮转 + 异常被无限打印 + 生产环境还在打调试日志”。
如果你愿意,可以把:
贴出来,我可以帮你精准定位是哪一类问题。