温馨提示×

Linux JS日志如何分析

小樊
38
2026-07-18 18:41:01
栏目: 编程语言

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


一、常见 JS 日志来源

1️⃣ Node.js 后端日志

常见形式:

  • console.log / console.error
  • 日志文件(如 app.log
  • 框架日志(Express / NestJS / Koa)
  • PM2 日志

2️⃣ 前端 JS 日志

  • 浏览器控制台(本地)
  • 前端错误上传到服务器(如 Sentry、自建接口)
  • Nginx 访问日志中的接口请求

3️⃣ 容器 / 云平台

  • Docker 日志
  • Kubernetes pod 日志

二、基础日志分析命令(必会)

1️⃣ 查看日志文件

cat app.log
less app.log
tail -f app.log   # 实时查看

2️⃣ 过滤关键信息

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

精确匹配时间

grep "2025-01-20 10:" app.log

三、Node.js 日志分析实战

1️⃣ 分析错误日志

grep -n "Error" app.log

查看前后内容:

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

2️⃣ 统计错误类型

grep "Error" app.log | awk '{print $1, $2}' | sort | uniq -c | sort -nr

3️⃣ 分析 PM2 日志

PM2 默认日志路径:

~/.pm2/logs/

查看:

pm2 logs
pm2 logs app-name --lines 100

4️⃣ 分析异常堆栈

错误示例:

TypeError: Cannot read properties of undefined
    at /app/user.js:23:15

定位问题:

grep -R "user.js:23" /app

四、使用 jq 分析 JSON 日志(非常重要)

如果日志是 JSON(推荐做法):

{"level":"error","message":"DB failed","time":"2025-01-20T10:00:00Z"}

1️⃣ 安装 jq

yum install jq   # centos
apt install jq   # ubuntu

2️⃣ 过滤 ERROR 日志

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

3️⃣ 查看错误消息

jq '.message' app.log

4️⃣ 统计日志级别

jq '.level' app.log | sort | uniq -c

五、前端 JS 日志分析方式

1️⃣ 接口异常(Nginx 日志)

grep "POST /api" access.log

分析 500 错误:

awk '$9==500 {print}' access.log

2️⃣ JS 错误上报分析

前端通过接口上传错误:

POST /log/js-error

查看:

grep "/log/js-error" access.log

六、Docker / Kubernetes JS 日志

Docker

docker logs container_id
docker logs -f container_id

Kubernetes

kubectl logs pod-name
kubectl logs pod-name --previous

七、高级分析工具(推荐)

1️⃣ 实时搜索

less app.log
/error
n / N

2️⃣ 分析访问热点

awk '{print $7}' access.log | sort | uniq -c | sort -nr | head

3️⃣ 时间分布分析

awk '{print $4}' app.log | cut -d: -f1-2 | uniq -c

八、最佳实践(避免日志难分析)

不要只用 console.log

  • 使用日志库:
    • Winston
    • Pino(快,JSON)

统一日志格式

{
  "time": "",
  "level": "",
  "msg": "",
  "requestId": ""
}

关键字段

  • requestId
  • userId
  • ip
  • stack trace

九、常见分析思路总结

问题 方法
后端报错 grep Error + jq
接口慢 Nginx 响应时间
偶发错误 按时间 + requestId
内存泄漏 日志 + 监控
线上问题 实时 tail -f

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

  • ✅ 是 Node.js 还是前端
  • ✅ 日志格式(文本 / JSON)
  • ✅ 是否使用 Docker / PM2 / Nginx

我可以 直接帮你写分析命令或脚本

0