温馨提示×

为什么js日志丢失了

小樊
38
2026-09-05 16:05:13
栏目: 编程语言

JavaScript 日志“丢失”是前端很常见的问题,原因通常不在“日志没打印”,而在打印了但你看不到 / 被清了 / 没发出去 / 被吞了。下面按常见程度给你一个排查清单。


一、最常见原因

1. 页面刷新 / 跳转导致控制台清空

  • 刷新页面、跳转路由(尤其 location.href、表单提交)
  • 控制台没勾选 “Preserve log”

✅ 解决:

  • DevTools → Console → 勾选 Preserve log
  • Network 同样可勾选

2. console.log 在错误之前执行,但报错中断

console.log(a)
undefinedFunction() // 抛错

看似“日志没了”,其实是后面代码没执行

✅ 解决:

  • 看 Console 是否有红色报错
  • try/catch 包住

3. 日志被生产环境干掉了

很多项目会:

  • webpack / vite 移除 console
  • 使用 babel-plugin-transform-remove-console

✅ 解决:

  • 本地 dev 模式测试
  • 搜索 drop_console / removeConsole

4. 异步日志“晚于你以为的时间”

console.log(data)
fetch(...)

你以为没打,其实是异步还没回来

✅ 解决:

  • .then() 里打
  • await

二、日志“发出去但看不到”

5. 前端日志发到后端,但后端没存 / 没接

  • 用了 fetch / sendBeacon
  • 接口 404、500、被网关拦

✅ 解决:

  • Network 看请求是否成功
  • 后端查日志服务(ELK / SLS)

6. 跨域 / CSP 拦截

  • 脚本被 CSP 拦截
  • 第三方脚本没执行

✅ 解决:

  • Console 看 Refused to execute

三、特殊场景

7. console 对象被重写

console.log = () => {}

常见于:

  • 埋点 SDK
  • 某些“防调试”代码

✅ 解决:

console.log.toString()

8. 日志在 iframe / Web Worker 里

  • 主页面 Console 看不到
  • 需要切到对应上下文

四、你可以直接告诉我这些,我能精准判断

  1. 浏览器 Console 看不到,还是 服务器没收到日志
  2. 本地能看,线上看不到?
  3. 用的什么框架(React / Vue / 原生)?
  4. 有没有报错信息?

如果你愿意,可以把相关代码或现象贴出来,我可以直接帮你定位是哪一类“丢失”。

0