温馨提示×

linux js日志异常怎排查

小樊
35
2026-10-05 12:34:14
栏目: 编程语言

在 Linux 环境下排查 JS(JavaScript)日志异常,通常取决于 JS 是跑在前端(浏览器)还是后端(Node.js)。下面按常见场景给你一套排查思路。


一、先确认 JS 运行环境

  • 浏览器前端 JS:看浏览器 Console / Network
  • Node.js 后端 JS:看进程日志、stdout/stderr、PM2 / systemd 日志
  • 容器内 JS:先看容器日志,再进容器查

二、前端 JS 日志异常排查

1. 浏览器控制台

F12 → Console
F12 → Network(看请求是否 404/500)

重点看:

  • 红色 Error
  • Uncaught TypeError
  • 接口返回非预期数据

2. 静态资源是否加载失败

curl -I https://域名/static/app.js
  • 404 → 路径或构建问题
  • 403 → 权限/Nginx 配置

3. Nginx / 网关日志

tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log

三、Node.js 后端 JS 异常排查

1. 看进程是否在跑

ps -ef | grep node
netstat -tunlp | grep 端口

2. 看运行日志(最常见)

直接用 node 启动

node app.js 2>&1 | tee app.log

PM2

pm2 logs
pm2 describe 应用名

systemd

journalctl -u node-app -f

3. 常见异常类型

  • Cannot find module → 依赖没装
  • ECONNREFUSED → 数据库/接口没起
  • Port in use → 端口被占
  • SyntaxError → 构建/版本问题

4. 抓异常栈

在代码里加:

process.on('uncaughtException', e => {
  console.error('UNCAUGHT', e);
});
process.on('unhandledRejection', e => {
  console.error('REJECT', e);
});

四、日志里“没内容 / 不打印”的情况

1. 日志被重定向丢了

ls -l /var/log/xxx

确认:

  • 文件存在
  • 权限可写
  • 没被 > /dev/null

2. 使用了异步日志但未 flush

  • 强杀进程会丢日志
  • 用 SIGTERM 而非 kill -9

3. Docker 场景

docker logs 容器名 -f

或:

kubectl logs pod名

五、快速定位套路(实战顺序)

  1. 复现异常
  2. 看报错栈(最重要)
  3. 看时间线(日志时间戳)
  4. 看上下游(DB / 接口 / 第三方)
  5. 本地最小复现

六、如果你愿意,我可以直接帮你看

你可以贴:

  • 报错日志原文
  • JS 运行方式(node / pm2 / docker / nginx)
  • 操作系统版本

我可以直接帮你定位是哪一类问题。

0 踩