在 Linux 环境下分析 JS(JavaScript)日志,通常分为前端 JS 日志和Node.js 服务端日志两类。下面从日志来源 → 收集方式 → 分析手段 → 实用命令几方面系统讲一下。
console.log / console.error)window.onerror、unhandledrejection)/api/log)console.log / error / warn| 场景 | 路径示例 |
|---|---|
| Nginx 反向代理 | /var/log/nginx/access.log |
| Node 服务 | /var/log/app/ 或 pm2 logs |
| Docker | docker logs 容器名 |
| Systemd | journalctl -u 服务名 |
tail -f app.log
grep "TypeError" app.log
grep -i "error" app.log
grep "ERROR" app.log | wc -l
awk '/2026-01-21 10:00/,/2026-01-21 11:00/' app.log
grep -E "Error|Exception|stack" app.log
pm2 logs
pm2 logs app --lines 200
使用 JSON 日志:
{"level":"error","msg":"db timeout","time":"2026-01-21T10:00:00Z"}
分析:
jq 'select(.level=="error")' app.log
window.onerror = function(msg, url, line) {
fetch('/api/log', {
method: 'POST',
body: JSON.stringify({ msg, url, line })
})
}
grep "js_error" access.log
.stack 字段| 问题 | 日志特征 |
|---|---|
| 空指针 | Cannot read property |
| 异步错误 | UnhandledPromiseRejection |
| 内存泄漏 | heap used increasing |
| 接口异常 | 500 / timeout |
tail -f 看实时日志grep ERROR 找异常如果你能贴一段具体 JS 日志内容或运行环境(前端 / Node / Docker),我可以帮你做更针对性的分析。