温馨提示×

linux js日志为何突然增大

小樊
34
2026-09-29 17:10:54
栏目: 编程语言

Linux 环境下 JS(前端/Node.js)日志突然增大,常见原因可以按“前端 JS”和“Node.js 服务端 JS”两类来看。


一、Node.js 服务端日志突然变大

1. 错误/异常被频繁打印

  • 未捕获异常、Promise reject 没处理
  • 循环调用导致错误日志刷屏
setInterval(() => {
  try {
    doSomething()
  } catch (e) {
    console.error(e) // 每秒都打
  }
}, 100)

✅ 解决:

  • 增加错误采样
  • 限制日志频率
  • 使用日志库(winston / pino)

2. 日志级别设置过低

  • 生产环境用了 debug / trace
  • 第三方库也输出大量日志

✅ 解决:

  • 生产环境用 info 或 warn
  • 控制第三方库日志级别

3. 请求量突增

  • 被爬虫、压测、攻击
  • 接口返回 500 并全量记录 request/response

✅ 检查:

wc -l app.log
tail -n 100 app.log
grep "ERROR" app.log | wc -l

4. 日志未轮转(log rotate 失效)

  • 没有配置 logrotate
  • PM2 / Docker 没限制日志大小

✅ 解决:

  • 配置 logrotate
  • PM2:
pm2 install pm2-logrotate

5. 内存泄漏导致频繁 GC / 报错

  • 对象未释放
  • 日志里大量 heap, gc

✅ 排查:

node --inspect

或看是否有:

JS stack trace
FATAL ERROR

二、前端 JS 日志变大(浏览器 / 打包后)

1. 控制台日志没去掉

console.log(data) // 大对象

✅ 解决:

  • 生产构建屏蔽 console
  • webpack / vite 插件移除

2. 前端错误监控狂报

  • 页面死循环
  • 监听事件重复绑定

✅ 表现:

  • Sentry / 自建监控日志暴涨

3. 大对象被序列化

logger.info(JSON.stringify(hugeObj))

三、Linux 系统层面原因

1. 磁盘 inode 或空间异常

df -h
du -sh /var/log/*

2. 日志软链接失效

  • 日志写到 deleted 文件
lsof | grep deleted

四、快速排查清单 ✅

# 看哪个日志最大
du -sh /var/log/*

# 看增长速度
watch -n 1 'ls -l app.log'

# 看错误类型
grep -E "ERROR|WARN" app.log | sort | uniq -c | sort -nr

# Node 进程
ps aux | grep node

如果你能补充:

  • 是 Node 还是浏览器 JS
  • 用的 什么框架(Express / Nest / Next / Nuxt)
  • 日志文件 路径 & 增长速度

我可以直接帮你定位到具体代码或配置。

0 踩