在 Ubuntu 上查看和“读”(分析)Node.js 日志,通常有几种常见场景,下面按常用程度给你一个清晰指南。
如果你是直接运行:
node app.js
日志会输出在终端:
console.log()console.error()pm2 logs
pm2 logs appname
pm2 logs --lines 100
查看错误日志:
pm2 logs --err
nohup node app.js > app.log 2>&1 &
tail -f app.log
journalctl -u yourapp.service
journalctl -u yourapp.service -f
journalctl -u yourapp.service --since "1 hour ago"
sudo tail -f /var/log/syslog
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
重点看:
Error:ENOENT(文件找不到)EADDRINUSE(端口被占用)ECONNREFUSED(连不上数据库)TypeError / ReferenceErrorat app.js:23:10
→ 对应代码第 23 行
less app.log
G # 跳到末尾
?ERROR # 向上搜索
grep ERROR app.log
grep -i timeout app.log
grep "MongoError" app.log
示例(Pino):
const pino = require('pino')
const logger = pino()
logger.error({ err }, 'request failed')
Ubuntu 上读 Node.js 日志 =
先确定运行方式(PM2 / systemd / 终端)
再用 tail / journalctl / pm2 logs 看
重点看 Error + 堆栈 + 时间线
如果你愿意,可以贴一段日志,我可以直接帮你“读”和定位问题。