温馨提示×

怎样定位js错误日志linux

小樊
47
2026-10-02 14:36:58
栏目: 编程语言

在 Linux 环境下“定位 JS 错误日志”,通常分 前端 JS 和 后端 JS(Node.js) 两种情况。下面给你一套实用排查思路。


一、Node.js(服务端 JS)错误定位

1. 查看进程标准输出 / 错误日志

如果你是直接运行:

node app.js

错误一般会打印在终端。

如果是后台运行:

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

查看日志:

tail -f app.log

2. 使用 PM2(常见)

pm2 logs
pm2 logs app_name
pm2 error

错误日志默认在:

~/.pm2/logs/

3. 使用 systemd

journalctl -u your-node-service -f

4. Node.js 自带错误栈

典型错误示例:

TypeError: Cannot read property 'x' of undefined
    at app.js:23:10

重点看:

  • 文件名
  • 行号:列号
  • 调用栈

5. 开启详细日志

node --trace-warnings app.js
node --stack-trace-limit=100 app.js

二、前端 JS 错误(浏览器端)

前端 JS 错误 不会直接出现在 Linux 服务器日志里,需要通过以下方式收集:

1. Nginx / 反向代理访问日志(只能看请求)

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

看不到 JS 报错内容。

2. 前端错误上报(推荐)

在页面中加入:

window.onerror = function(msg, url, line, col, error) {
  fetch('/log/js-error', {
    method: 'POST',
    body: JSON.stringify({ msg, url, line, col, stack: error?.stack })
  });
};

后端(Node)接收并写入日志文件。

3. 使用 Sentry

npm install @sentry/browser

前端错误自动上报到 Sentry 后台。


三、快速定位技巧(通用)

1. 搜索关键错误

grep -R "TypeError" /path/to/logs
grep -R "undefined" ~/.pm2/logs

2. 按时间定位

journalctl --since "10 min ago"

3. 精确定位代码

node -e "require('./app.js')"

或:

npx stacktrace-ninja app.js:23:10

四、常见 JS 错误类型

  • ReferenceError:变量未定义
  • TypeError:类型错误
  • SyntaxError:语法错误
  • RangeError:递归过深

如果你能补充:

  • 是 前端还是 Node.js
  • 用了什么(Nginx / PM2 / Docker)
  • 错误日志样例

我可以直接帮你精准定位。

0 踩