温馨提示×

linux js日志不输出为何

小樊
46
2026-09-14 16:43:31
栏目: 编程语言

在 Linux 环境下 JS 日志不输出,常见原因和排查思路如下(前端 / Node.js 都覆盖):


一、Node.js 日志不输出

1. 标准输出被重定向

node app.js > /dev/null 2>&1

✅ 解决:检查启动脚本、systemd、Docker 日志配置

2. 使用了 console.log 但进程没 flush

  • 进程被 kill -9
  • 输出到管道但未消费

✅ 解决:

node app.js | cat

3. systemd 没看对地方

journalctl -u your-service -f

✅ 确认 StandardOutput=journal

4. 日志级别被过滤

logger.level = 'error'

✅ 检查 winston / pino / log4js 配置

5. 异步错误未捕获

process.on('unhandledRejection', e => console.error(e))

二、浏览器 JS 日志在 Linux 不显示

1. 你以为是“Linux 问题”,其实是浏览器

  • console.log 只在 浏览器 DevTools 显示
  • 服务器端看不到

✅ 前端日志要发到后端:

fetch('/log', { method:'POST', body: JSON.stringify(log) })

2. 生产环境被打包工具移除

// webpack / vite
if (import.meta.env.DEV) console.log(x)

三、Docker / 容器场景

1. 日志未指向 stdout

❌ 写到文件:

fs.writeFileSync('/var/log/app.log')

✅ 正确:

console.log(...)

2. 容器已退出

docker logs <container>

四、快速排查清单

  • [ ] console.log 还是 logger
  • [ ] 输出到 stdout 还是文件?
  • [ ] 是否被重定向 / 丢弃?
  • [ ] 是否在 DevTools / journalctl / docker logs?
  • [ ] 是否生产环境被移除?

如果你能贴:

  • Node 还是 浏览器
  • 启动方式(脚本 / systemd / docker)
  • 日志代码示例

我可以直接帮你定位具体原因。

0