在 Linux 下定位 Node.js 日志,通常分几种情况:应用自身日志、运行崩溃日志、系统/进程日志、容器日志。下面按实战场景给你梳理一下。
如果你是直接运行的:
node app.js
日志一般在终端输出。
如果是后台运行:
node app.js > app.log 2>&1 &
那日志就在:
tail -f app.log
一般会在配置里指定路径,例如:
/var/log/node/app.log
./logs/app.log
确认方式:
grep -R "logs" config/
pm2 logs
pm2 logs appname
pm2 logs --lines 100
~/.pm2/logs/
journalctl -u your-node-service
或
journalctl -xe
dmesg | grep -i "killed process"
或
grep -i "out of memory" /var/log/messages
如果你用 systemd:
systemctl status node-app
journalctl -u node-app -f
docker logs container_name
docker logs -f container_name
如果日志在容器里:
docker exec -it container_name sh
cat /app/logs/app.log
grep -R "Error" /var/log/node/
ls -lt /var/log/ | head
tail -f app.log | grep -i error
console.log 在 production 会被缓冲,可能看不到如果你愿意,可以告诉我:
我可以直接帮你给命令。