在 Debian 系统上,Node.js 日志的解读方式取决于你是如何运行 Node.js 应用的(直接用 node、用 systemd、用 PM2、用 Docker 等)。下面我按常见场景系统讲一下如何查看和解读。
node app.js
日志会直接输出在终端(stdout / stderr)。
常见内容:
console.log() → 普通信息console.error() → 错误如果 Node.js 是系统服务(如通过 .service 文件):
sudo systemctl status yourapp
sudo journalctl -u yourapp -f
查看完整日志:
sudo journalctl -u yourapp --since "1 hour ago"
日志示例解读:
Jul 10 10:00:01 debian node[1234]: Error: connect ECONNREFUSED 127.0.0.1:5432
含义:
Jul 10 10:00:01debiannode(PID 1234)查看日志:
pm2 logs
pm2 logs appname
PM2 日志通常在:
~/.pm2/logs/
日志文件:
appname-out.log → 正常输出appname-error.log → 错误PM2 还会记录:
docker logs container_name -f
或:
docker compose logs -f
Server running on port 3000
✅ 正常
TypeError: Cannot read properties of undefined (reading 'id')
at app.js:25:10
说明:
undefined.idError: Cannot find module 'express'
解决:
npm install
Error: listen EADDRINUSE: address already in use :::3000
解决:
sudo lsof -i :3000
kill -9 PID
EACCES: permission denied, open '/var/log/app.log'
解决:
sudo常见级别(从低到高):
debug < info < warn < error < fatal
示例:
{"level":"error","message":"DB timeout","stack":"..."}
journalctl -u yourapp | grep -i error
tail -f /var/log/yourapp.log
pm2 describe appnamejournalctl -u yourapp -b你可以告诉我:
我可以直接帮你逐行解读并给出解决办法。