在 Linux 下配置 Node.js 日志,常见做法分为 基础日志输出、日志文件化、日志轮转、生产级日志方案 几个层次。下面按“从简单到生产可用”给你一套实用方案。
console.log('info');
console.error('error');
✅ 适合本地开发
❌ 不适合生产(无文件、无轮转)
node app.js > app.log 2>&1
>:标准输出2>&1:错误也写入✅ 简单
❌ 不会自动切割
npm install -g pm2
pm2 start app.js
~/.pm2/logs/
app-out.logapp-error.logpm2 logs
pm2 logs app
pm2 install pm2-logrotate
默认配置:
winston(最流行)npm install winston
示例:
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('出错了');
✅ 支持级别、文件、格式
❌ 需要自己处理轮转(可配合 logrotate)
适合 任何 Node 日志文件
sudo vi /etc/logrotate.d/node-app
内容:
/var/www/app/logs/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
copytruncate
}
✅ 系统级稳定
✅ 不依赖 Node
✅ PM2 + pm2-logrotate
或
✅ Node + winston + logrotate
console.log如果你愿意,可以告诉我:
/var/log?)我可以直接给你 现成配置。