在 Ubuntu 上定位 Node.js 日志,通常从日志在哪里 → 怎么看 → 怎么分析三步走。下面按常见场景给你一份实用指南。
不同运行方式,日志位置完全不同。
node app.js
node app.js > app.log 2>&1
pm2 logs
pm2 logs app-name
pm2 logs --lines 100
日志文件位置:
~/.pm2/logs/
例如:
~/.pm2/logs/app-name-out.log
~/.pm2/logs/app-name-error.log
如果 Node 是通过 service 启动:
journalctl -u your-node-service
journalctl -u your-node-service -f # 实时
journalctl -u your-node-service --since "2024-01-01 10:00"
Service 文件一般在:
/etc/systemd/system/xxx.service
docker logs container_name
docker logs -f container_name
console.log / console.errorwinstonpinolog4js一般会在代码里指定:
winston.add(new winston.transports.File({ filename: 'logs/error.log' }));
查找日志文件:
find / -name "*.log" 2>/dev/null | grep node
grep -i error app.log
grep -i "uncaught" app.log
sed -n '/10:00/,/10:30/p' app.log
tail -f app.log
dmesg | grep node
logrotate 防止日志爆盘你可以告诉我:
我可以直接帮你写 排查命令或日志配置示例。