温馨提示×

linux js日志怎样分析

小樊
36
2026-09-26 18:08:35
栏目: 编程语言

在 Linux 环境下分析 JS(JavaScript)日志,通常分为前端 JS 日志和Node.js 服务端日志两类。下面从日志来源 → 收集方式 → 分析手段 → 实用命令几方面系统讲一下。


一、明确 JS 日志来源

1. 前端 JS 日志

  • 浏览器控制台(console.log / console.error)
  • 前端异常(window.onerror、unhandledrejection)
  • 通过接口上报到后端(如 /api/log)

2. Node.js 日志

  • console.log / error / warn
  • 日志库(winston、pino、log4js)
  • PM2、Docker 容器日志

二、常见日志文件位置(Linux)

场景 路径示例
Nginx 反向代理 /var/log/nginx/access.log
Node 服务 /var/log/app/ 或 pm2 logs
Docker docker logs 容器名
Systemd journalctl -u 服务名

三、基础日志分析命令(非常实用)

1. 实时查看日志

tail -f app.log

2. 按关键字过滤

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

3. 统计错误出现次数

grep "ERROR" app.log | wc -l

4. 按时间范围分析

awk '/2026-01-21 10:00/,/2026-01-21 11:00/' app.log

5. 提取 JS 报错信息

grep -E "Error|Exception|stack" app.log

四、Node.js 日志分析实战

1. 使用 PM2

pm2 logs
pm2 logs app --lines 200

2. 结构化日志(推荐)

使用 JSON 日志:

{"level":"error","msg":"db timeout","time":"2026-01-21T10:00:00Z"}

分析:

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

五、前端 JS 日志分析思路

1. 前端错误上报示例

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

2. 后端收集后分析

grep "js_error" access.log

六、高级分析方式

1. 日志聚合

  • ELK(Elasticsearch + Logstash + Kibana)
  • Grafana + Loki
  • Sentry(前端/Node 异常监控神器)

2. 错误堆栈还原

  • 前端:Source Map
  • Node:.stack 字段

七、常见 JS 问题日志特征

问题 日志特征
空指针 Cannot read property
异步错误 UnhandledPromiseRejection
内存泄漏 heap used increasing
接口异常 500 / timeout

八、建议你这样开始

  1. 先 tail -f 看实时日志
  2. grep ERROR 找异常
  3. 按时间 + 关键字定位
  4. 上 Sentry / ELK 做长期分析

如果你能贴一段具体 JS 日志内容或运行环境(前端 / Node / Docker),我可以帮你做更针对性的分析。

0 踩