在 Debian 上分析 Node.js 日志,通常要从日志来源、格式、工具和分析方法几个方面入手。下面按实用流程说明。
console.log / console.error)/var/log/myapp/
/srv/myapp/logs/
~/myapp/logs/
如果 Node.js 是通过 systemd 启动的(最常见):
journalctl -u your-node-service.service
实时查看:
journalctl -u your-node-service.service -f
按时间:
journalctl -u your-node-service.service --since "2024-01-01" --until "2024-01-02"
2024-01-01 10:00:00 Error: connect ECONNREFUSED
{"level":"error","time":"2024-01-01T10:00:00Z","msg":"db error"}
适合用 jq 分析。
tail -f /var/log/myapp/app.log
grep -i error /var/log/myapp/app.log
grep -c "Error" /var/log/myapp/app.log
awk '$1 >= "2024-01-01" && $1 <= "2024-01-02"' app.log
journalctl -u node-app.service -p err
journalctl -u node-app.service -n 100
journalctl -u node-app.service > node.log
假设使用 pino / winston JSON 日志:
sudo apt install jq
cat app.log | jq 'select(.level=="error")'
cat app.log | jq -r '.msg' | sort | uniq -c | sort -nr
uncaughtExceptionunhandledRejection查看:
dmesg | grep node
journalctl -u node-app.service | grep -i kill
--inspectrsysloglogrotate# 1. 查看服务状态
systemctl status node-app
# 2. 查看错误日志
journalctl -u node-app -p err -n 50
# 3. 导出日志
journalctl -u node-app > node.log
# 4. 分析错误
grep -i "error" node.log | less
如果你愿意,可以:
我可以直接帮你分析具体日志。