在 Debian 上运行 Node.js 时“看不到日志”,通常不是 Node.js 本身不输出日志,而是日志被系统/进程管理器接管或写到了你没看的地方。下面按最常见原因逐一说明。
如果你是用 systemctl 启动 Node.js 服务:
systemctl start mynode
那么:
console.log() 不会出现在终端journalctl -u mynode -f
或查看全部 Node 日志:
journalctl -f
✅ 这是 Debian 上“无日志”的最主要原因
例如:
node app.js > log.txt 2>&1 &
如果没有重定向:
node app.js &
日志会:
✅ 解决方式:
node app.js >> /var/log/node/app.log 2>&1
如果你用 PM2:
pm2 start app.js
日志不在终端,而在:
pm2 logs
或:
~/.pm2/logs/
例如:
process.on('uncaughtException', () => {})
或:
winston / pino 配置到文件
导致你以为“没日志”,其实写到了文件或远程。
✅ 检查:
find / -name "*.log" 2>/dev/null | grep node
某些 Debian(容器 / 服务器):
Node.js 检测到非 TTY 时:
确认你有:
console.log('start')
而不是:
if (false) console.log('never')
systemctl?→ journalctl -u 服务名pm2 logsdocker logs.log如果你愿意,可以告诉我:
我可以直接帮你定位到具体日志在哪。