在 Ubuntu 上分析 JS(JavaScript)日志,通常分为前端 JS 日志和Node.js 服务端 JS 日志两种情况。下面我按使用场景给你一个实用指南。
window.onerrorconsole.log / error / warnapp.log)tail -f app.log
grep -i "error" app.log
grep "2026-01-21 10:" app.log
grep "TypeError" app.log | wc -l
pm2 logs
pm2 logs app-name
pm2 logs --lines 100
查看错误:
pm2 logs --err
journalctl -u node-app.service -f
journalctl -u node-app.service --since "2026-01-21 09:00"
window.onerror = function (msg, url, line, col, error) {
console.error(msg, url, line, col, error);
}
前端:
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
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 |
可视化 |
白屏 / 页面错误
window.onerrorNode 接口 500
pm2 logsgrep "Error"偶发错误
如果你能告诉我:
我可以直接帮你写具体排查命令或脚本。