在 Debian 下分析 Node.js 日志,通常可以按日志来源 → 日志内容 → 分析工具 → 常见场景的思路来进行。下面给你一套实用方案。
console.log / console.errorwinstonpinobunyanmorgan(HTTP 请求日志)journalctl -u your-node-service
pm2 logs
pm2 logs appName
/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/apache2/
tail -f /var/log/your-app/app.log
tail -n 200 /var/log/your-app/app.log
grep "ERROR" app.log
grep -i "timeout" app.log
grep "ERROR" app.log | wc -l
journalctl -u node-app --since "2026-01-20 10:00" --until "2026-01-20 11:00"
journalctl -u node-app.service -f
journalctl -u node-app.service -p err
journalctl -u node-app.service --no-pager > node-logs.txt
pm2 logs
pm2 logs my-api
~/.pm2/logs/
pm2 logs --err
如果日志是 JSON(如 pino):
cat app.log | jq '.level == "error"'
示例 pino 日志:
{"level":50,"time":1705732800000,"msg":"DB connection failed"}
分析:
jq 'select(.level >= 50)' app.log
ERROR / stackaccess.log 看状态码grep " 500 " /var/log/nginx/access.log
pm2 monit
top -p $(pgrep node)
journalctl -u node-app -n 50
awk '{print $NF}' access.log | sort -n
lessgrepjqwinston / pino 替代 console.loglogrotate)如果你愿意,可以告诉我:
我可以直接给你针对性的分析命令或脚本。