在 Debian 上解析 Node.js 日志,通常取决于日志是怎么产生的(console.log、Winston、PM2、systemd、Docker 等)。下面按常见场景给你一套实用方案。
node app.js
日志在终端,或你重定向的地方:
node app.js > app.log 2>&1
查看:
tail -f app.log
pm2 logs
pm2 logs app-name
日志文件位置:
~/.pm2/logs/
合并日志解析:
pm2 flush # 清空日志
pm2 logs --json # JSON 格式
journalctl -u your-node-service
journalctl -u your-node-service -f
journalctl -u your-node-service --since "2024-01-01"
示例:
2024-01-01 10:00:00 Error: DB connection failed
查看错误:
grep -i error app.log
查看某时间段:
sed -n '/10:00/,/10:30/p' app.log
Node 应用常用 Winston / Pino:
{"level":"error","time":"2024-01-01T10:00:00Z","msg":"DB error"}
解析方式:
jqcat app.log | jq 'select(.level=="error")'
cat app.log | jq -r '.level' | sort | uniq -c
tail -f app.log
grep -c "Error" app.log
sort -k1 app.log
awk '{print $1}' access.log | sort | uniq -c | sort -nr
lnavsudo apt install lnav
lnav app.log
自动识别时间、级别、错误高亮。
适合:
✅ 使用结构化日志(JSON)
✅ 区分 stdout / stderr
✅ 设置日志级别(debug / info / error)
✅ 日志轮转(logrotate / PM2)
如果你愿意,可以:
我可以直接帮你写解析脚本或命令。