在 Ubuntu 上检索 Node.js 日志,常见做法主要取决于日志写在哪里以及用什么方式运行 Node.js。下面按场景给你系统说明。
如果你直接运行:
node app.js
日志一般输出到:
但不会自动保存,关掉终端就没了。
如果你用 PM2 管理 Node.js:
pm2 logs
pm2 logs app_name
pm2 logs --lines 100
日志文件位置:
~/.pm2/logs/
如果 Node.js 是 systemd 服务:
journalctl -u your-node-service
journalctl -u your-node-service -f # 实时
journalctl -u your-node-service --since "2024-01-01"
比如你用 winston、pino 写到:
/var/log/node/app.log
那就直接查文件。
tail -f app.log
PM2:
pm2 logs
Systemd:
journalctl -u node-app -f
grep "ERROR" app.log
grep -i "timeout" app.log
显示行号:
grep -n "Error" app.log
tail -f app.log | grep "ERROR"
sed -n '/10:00/,/11:00/p' app.log
grep -c "ERROR" app.log
tail -n 200 app.log
# 最近 1 小时
journalctl -u node-app --since "1 hour ago"
# 指定时间
journalctl -u node-app --since "2024-06-01 10:00" --until "2024-06-01 12:00"
# 按关键字
journalctl -u node-app | grep " Uncaught"
不要只 console.log
winston / pino日志分级
日志落盘
node app.js >> /var/log/node/app.log 2>&1
用 PM2 或 systemd
你可以告诉我:
我可以直接给你精准命令。