温馨提示×

如何解析linux js日志

小樊
47
2026-09-14 16:34:34
栏目: 编程语言

解析 Linux 上的 JS(JavaScript)日志,通常取决于日志来源(Node.js 服务端 / 浏览器前端 / 框架日志)以及日志格式。下面按常见场景给你一套实用思路和示例。


一、先确认日志来源

1. Node.js 服务日志

  • 文件形式:app.log、pm2 logs、nodemon 输出
  • 常见内容:
    Error: Cannot find module 'xxx'
        at Function.Module._resolveFilename
    
  • 工具:pm2、forever、systemd journal

2. 浏览器 JS 日志(前端)

  • 一般通过 console.error 输出
  • 在 Linux 上通常是:
    • Nginx 访问日志中的接口错误
    • 前端上报到后端的错误日志(Sentry / 自建日志)

3. 容器 / 系统日志

  • Docker:docker logs
  • systemd:journalctl -u your-service

二、基础查看与过滤(命令行)

1. 实时查看

tail -f app.log

2. 只看错误

grep -i "error" app.log

3. 按时间过滤

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

4. 查看堆栈信息

awk '/Error/{flag=1} flag{print} /at /{c++} c>10{exit}' app.log

三、结构化日志解析(推荐)

如果日志是 JSON(很多 Node 项目用)

{"level":"error","time":"2024-01-21T10:00:00Z","msg":"DB fail","stack":"..."}

用 jq 解析

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

提取字段

jq -r '.time + " " + .msg' app.log

四、Node.js 专用分析

1. PM2 日志

pm2 logs
pm2 logs --err

2. 崩溃分析

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

3. 核心转储(极端情况)

ulimit -c unlimited
node app.js

五、前端 JS 错误在 Linux 的解析

如果是前端错误上报到 Linux 服务:

{
  "message": "TypeError: undefined is not a function",
  "stack": "at onClick (app.js:20:5)",
  "ua": "Chrome/120"
}

解析方式:

  • 用 jq
  • 或导入 Elasticsearch / Loki / Sentry

六、进阶方案(生产环境)

1. 日志收集

  • Filebeat → Elasticsearch
  • Loki + Grafana
  • Sentry(JS 错误专用)

2. 自动告警

  • 错误数 > N → 钉钉 / 飞书 / 邮件

七、常见 JS 日志问题速查

现象 可能原因
Cannot find module 依赖未安装
listen EADDRINUSE 端口占用
UnhandledPromiseRejection async 未 catch
ReferenceError 变量未定义

如果你能贴一段具体日志或说明:

  • 是 Node 还是前端
  • 用的什么框架(Express / Nest / Vue / React)
  • 日志是文本还是 JSON

我可以直接帮你写针对性解析命令或脚本。

0 踩