温馨提示×

linux js日志怎么检索

小樊
40
2026-09-26 18:07:38
栏目: 编程语言

在 Linux 下检索 JavaScript(Node.js / 前端构建 / 浏览器)相关日志,常见做法按日志来源和检索方式分几类,下面系统讲一下。


一、常见 JS 日志来源

1. Node.js 服务端日志

  • 控制台输出(console.log)
  • 日志文件(如 app.log)
  • 日志库(winston / pino / log4js)

2. 前端 JS 日志

  • 浏览器 Console(F12)
  • 打包报错(webpack / vite)
  • 前端错误上报(Sentry)

3. 容器 / 系统日志

  • Docker:docker logs
  • PM2:pm2 logs
  • systemd:journalctl

二、基础命令行检索(最常用)

1. cat + grep

cat app.log | grep "error"

2. tail 实时查看

tail -f app.log | grep "TypeError"

3. 忽略大小写

grep -i "undefined" app.log

4. 显示行号

grep -n "ReferenceError" app.log

5. 多关键词

grep -E "error|warn|exception" app.log

6. 反向匹配

grep -v "healthcheck" app.log

三、检索 JS 错误栈(重点)

JS 错误通常长这样:

TypeError: Cannot read properties of undefined (reading 'id')
    at getUser (/app/service/user.js:23:15)

检索错误类型

grep -E "TypeError|ReferenceError|SyntaxError" app.log

定位文件 & 行号

grep -n "user.js" app.log

查看错误前后内容

grep -A 10 -B 5 "TypeError" app.log

四、结构化日志(JSON 日志)

如果是 JSON 日志(pino 常见):

{"level":"error","msg":"db fail","stack":"..."}

用 jq 检索

cat app.log | jq 'select(.level=="error")'

只看 msg

jq -r 'select(.level=="error") | .msg' app.log

五、Node.js 专用方式

PM2

pm2 logs
pm2 logs --err

按时间

pm2 logs --lines 200

Docker

docker logs -f container_name | grep "error"

journalctl

journalctl -u node-app.service -f

六、前端 JS 日志检索

构建错误

npm run build 2>&1 | grep "error"

浏览器日志(服务端无法直接看)

  • 使用 Sentry / 日志上报
  • 或本地复现 + 浏览器 Console

七、进阶工具(大日志推荐)

  • less + / 搜索
  • ag / rg(比 grep 快)
  • ELK / Loki / Grafana
  • awk 按时间切片

八、实战示例

查最近 500 行里的 JS 报错

tail -n 500 app.log | grep -E "Error|Exception"

查某个接口报错

grep "POST /api/login" app.log | grep "500"

如果你能告诉我:

  • 是 Node / 前端 / Docker
  • 日志是 文本还是 JSON
  • 想查 错误 / 性能 / 某用户

我可以给你更精确的命令。

0 踩