温馨提示×

ubuntu js日志如何分析

小樊
47
2026-10-03 13:16:47
栏目: 编程语言

在 Ubuntu 上分析 JS(JavaScript)日志,通常分为前端 JS 日志和Node.js 服务端 JS 日志两种情况。下面我按使用场景给你一个实用指南。


一、常见 JS 日志来源

1. 前端 JS 日志

  • 浏览器控制台(Console)
  • 页面错误:window.onerror
  • 上报到后端的日志接口

2. Node.js 日志

  • 控制台输出:console.log / error / warn
  • 日志文件(如 app.log)
  • 框架日志(Express / Koa / NestJS)
  • PM2 / systemd 日志

二、基础日志查看命令(Ubuntu)

1. 查看实时日志

tail -f app.log

2. 查找错误

grep -i "error" app.log

3. 按时间筛选

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

4. 统计错误次数

grep "TypeError" app.log | wc -l

三、Node.js 日志分析实战

1. 使用 PM2(推荐)

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

查看错误:

pm2 logs --err

2. systemd 管理的 Node 服务

journalctl -u node-app.service -f
journalctl -u node-app.service --since "2026-01-21 09:00"

四、前端 JS 错误如何拿到日志

1. 浏览器端捕获

window.onerror = function (msg, url, line, col, error) {
  console.error(msg, url, line, col, error);
}

2. 上报到 Ubuntu 后端

前端:

fetch('/log', {
  method: 'POST',
  body: JSON.stringify({ msg: 'error', stack: e.stack })
})

后端(Node):

app.post('/log', (req, res) => {
  fs.appendFileSync('frontend.log', JSON.stringify(req.body) + '\n')
})

然后分析:

grep "TypeError" frontend.log

五、结构化日志(强烈推荐)

使用 JSON 日志

console.log(JSON.stringify({
  time: new Date().toISOString(),
  level: 'error',
  msg: 'db fail'
}))

分析:

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

六、常用分析工具

工具 用途
grep 基础搜索
awk 字段提取
jq JSON 日志
less 大文件查看
pm2 Node 进程日志
ELK 大规模日志
Grafana + Loki 可视化

七、典型问题排查思路

  1. 白屏 / 页面错误

    • 看浏览器 Console
    • 检查 window.onerror
  2. Node 接口 500

    • pm2 logs
    • grep "Error"
  3. 偶发错误

    • 加请求 ID
    • 按 ID 聚合日志

如果你能告诉我:

  • 是 前端还是 Node.js
  • 日志在哪(文件 / PM2 / Docker)
  • 报错样例

我可以直接帮你写具体排查命令或脚本。

0 踩