在 Linux 下解析 JS(JavaScript)日志,常见场景有两类:
下面从日志格式、解析工具、实战示例三个角度说明。
2024-01-12T10:22:31.123Z info: user login success { userId: 123 }
2024-01-12T10:22:35.456Z error: DB connection failed
{"time":"2024-01-12T10:22:31Z","level":"info","msg":"user login","userId":123}
GET /log?msg=js_error&file=app.js&line=20 HTTP/1.1
grep / awk(快速定位)# 查错误日志
grep "error" app.log
# 查某用户
grep "userId: 123" app.log
# 统计错误次数
grep -c "error" app.log
jq(解析 JSON 日志,强烈推荐)如果日志是 JSON:
cat app.log | jq 'select(.level=="error")'
提取字段:
jq '.time, .msg' app.log
统计错误类型:
jq -r '.level' app.log | sort | uniq -c
awk 自定义解析awk '/error/ {print $1, $2, $0}' app.log
提取时间 + 日志内容:
awk '{print $1, substr($0, index($0,$4))}' app.log
sed 清洗日志sed -n '/error/p' app.log
grep "error" app.log | awk '{print substr($1,1,16)}' | uniq -c
jq -r 'select(.msg=="api error") | .path' app.log | sort | uniq -c
grep "js_error" access.log | awk '{print $7}' | sort | uniq -c
✅ 日志统一 JSON 格式
✅ 包含字段:time / level / msg / traceId
✅ Node 使用 pino / winston
✅ 前端错误用 window.onerror 上报
如果你能贴一段具体 JS 日志内容,我可以直接帮你写解析命令或脚本。