在 Linux 上查看 Node.js 日志,本质上取决于你的 日志是输出到哪里 的。下面按常见场景给你一份实用速查表。
如果你的 Node.js 启动时没有做任何日志配置:
node app.js
日志一般输出到:
stdout(标准输出)stderr(标准错误)直接在终端就能看到:
node app.js
node app.js &
日志还在终端里,但很快会丢失。
不推荐生产环境这样做
node app.js > app.log 2>&1
查看日志:
tail -f app.log
nohup node app.js > app.log 2>&1 &
查看:
tail -f nohup.out
# 或
tail -f app.log
PM2 是 Node.js 生产环境最常用的进程管理器
pm2 start app.js
# 查看所有应用日志
pm2 logs
# 实时查看
pm2 logs --lines 100
# 只看某个应用
pm2 logs app
默认在:
~/.pm2/logs/
例如:
app-error.log
app-out.log
docker logs 容器ID
docker logs -f 容器ID
如果 Node.js 写文件:
/var/log/app.log
如果你用了日志库,比如:
const winston = require('winston');
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
查看:
tail -f combined.log
如果是 systemd 启动的 Node.js:
journalctl -u your-node-service -f
✅ 检查:
console.log✅ PM2 + 日志文件 + 日志库
pm2 start app.js --name api
pm2 logs api
如果你愿意,可以告诉我:
我可以直接给你“最适合你当前环境的查看方式”。