查看 Node.js 日志的方法取决于你运行 Node.js 的方式以及是否使用了日志库。下面按常见场景给你一个完整指南。
node app.js
日志会直接输出在终端:
console.log()console.error()node app.js > logs.log 2>&1 &
> logs.log:标准输出2>&1:错误日志也写入tail -f logs.log
pm2 logs
pm2 logs app-name
pm2 logs --lines 100
~/.pm2/logs/
docker logs 容器ID
docker logs -f 容器ID
Docker 会自动收集 console.log / console.error
winston(最常用)pino(高性能)morgan(HTTP 日志)const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
logger.info('服务启动');
logger.error('出错了');
查看:
tail -f combined.log
process.on('uncaughtException', err => {
console.error('未捕获异常:', err);
});
process.on('unhandledRejection', err => {
console.error('Promise 异常:', err);
});
app.use(morgan('combined'));
日志会输出到控制台或文件。
| 场景 | 建议 |
|---|---|
| 本地调试 | console.log |
| 生产环境 | PM2 + winston |
| Docker | console.log → docker logs |
| 报错找不到 | 查 stderr、PM2 logs |
如果你愿意,可以告诉我:
我可以给你更精确的查看方法。