温馨提示×

Linux JS日志怎么分析

小樊
34
2026-08-17 16:05:20
栏目: 编程语言

在 Linux 下分析 JavaScript(JS)日志,通常取决于日志来源(Node.js 后端、前端浏览器、容器、PM2、Nginx 等)。下面按常见场景 + 实用命令系统讲解。


一、常见 JS 日志来源

1️⃣ Node.js 后端日志

  • 控制台输出
  • 文件日志
  • PM2 日志
  • 日志库(winston / pino / log4js)

2️⃣ 前端 JS 日志

  • 浏览器 Console
  • 通过接口上报到后端
  • Nginx 访问日志(接口请求)

二、Node.js 日志分析(最常见)

1️⃣ 查看 Node.js 进程日志

直接运行

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

查看:

cat app.log
less app.log
tail -f app.log

2️⃣ PM2 日志分析(强烈推荐)

PM2 是 Node.js 最常用的进程管理器。

查看日志

pm2 logs
pm2 logs app-name
pm2 logs --lines 100

实时查看

pm2 logs --raw

日志位置

~/.pm2/logs/

3️⃣ 常见错误日志分析

搜索 JS 错误关键词:

grep -i "error" app.log
grep -i "exception" app.log
grep -i "stack" app.log

查看某段时间错误:

grep "2024-01-01 10:" app.log

三、使用日志分析命令(核心)

1️⃣ tail(实时)

tail -f app.log

2️⃣ grep(过滤)

grep "TypeError" app.log
grep -C 5 "Cannot read property" app.log

3️⃣ awk(统计)

统计错误次数:

awk '/Error/ {count++} END {print count}' app.log

4️⃣ sed(时间范围)

sed -n '/10:00:00/,/10:05:00/p' app.log

四、JS 错误日志常见格式

Node.js 错误示例

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

分析重点:

  • 错误类型
  • 文件名 + 行号
  • 调用栈

五、前端 JS 日志分析(接口 / 上报)

1️⃣ Nginx 接口日志

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

过滤 JS 接口:

grep "/api/" access.log

2️⃣ 前端错误上报

常见方式:

window.onerror = function(msg, url, line) {
  fetch('/log', { method: 'POST', body: JSON.stringify({ msg }) })
}

后端日志中搜索:

grep "onerror" app.log

六、结构化日志分析(JSON)

现代 JS 日志(pino / winston json 模式):

{"level":"error","message":"DB failed","stack":"..."}

分析:

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

或:

grep '"level":"error"' app.log | jq .

七、日志分析实战示例

查找最近 500 行中的 JS 错误

tail -n 500 app.log | grep -i "error"

统计错误类型

grep "Error:" app.log | sort | uniq -c | sort -nr

查看某接口报错

grep "/api/login" app.log | grep -i error

八、推荐分析工具

命令行

  • less
  • jq
  • lnav(日志浏览器)

专业工具

  • ELK(Elasticsearch + Logstash + Kibana)
  • Grafana + Loki
  • Sentry(JS 错误专用)

九、总结一句话

Linux 下 JS 日志分析 = 找到日志文件 + grep/filter + 错误栈定位 + 时间/接口维度分析


如果你愿意,可以告诉我:

  • ✅ Node.js 还是前端?
  • ✅ 用什么运行(PM2 / Docker / 裸跑)?
  • ✅ 日志格式(文本 / JSON)?

我可以直接帮你写一套针对你项目的日志分析命令

0