Node.js 日志写满磁盘,通常不是 Node.js 本身的问题,而是日志产生速度 > 磁盘清理速度或日志配置不当导致的。常见原因可以分为以下几类:
debug / verboselogger.debug('enter function', { req, user, payload })
✅ 建议:生产环境只用 info / warn / error
例如:
setInterval(() => {
logger.info('tick', bigObject)
}, 100)
日志量会被指数级放大。
try {
...
} catch (e) {
logger.error(e)
throw e // 外层又打一次
}
一个错误可能写 3~5 次日志。
使用:
fs.appendFile('app.log', log)
❌ 永远不会切文件
✅ 应使用:
winston + winston-daily-rotate-filepino + pino-rollrotatelog例如:
node app.js > app.out 2>&1
如果:
app.out 会无限增长。
不是“日志”但常被误认为日志:
core.*/tmp一些库会:
例如:
du -sh /var/log/*
du -sh ~/.pm2/logs/*
tail -f app.log
ls -lh app.log
lsof | grep deleted
(可能有“已删除但仍在写”的日志文件)
如果你愿意,可以把:
发出来,我可以直接帮你判断是哪一种原因。