以下是Node.js应用在Ubuntu上的日志记录最佳实践:
选择高效日志库
分级管理日志级别
debug/verbose,记录详细信息。warn/error,减少非必要日志,降低磁盘占用。const level = process.env.NODE_ENV === 'production' ? 'warn' : 'debug';
日志轮转与归档
logrotate工具自动轮换日志文件,避免单个文件过大:
/etc/logrotate.d/nodejs):/var/log/nodejs/*.log {
daily
rotate 7
compress
missingok
create 0640 root adm
}
```。
结构化日志格式
const logger = winston.createLogger({
format: winston.format.json(),
transports: [new winston.transports.File({ filename: 'app.log' })]
});
异步日志记录
集中式日志管理
安全与权限控制
chmod 640 /var/log/nodejs/*.log
chown root:adm /var/log/nodejs/*.log
```。
监控与告警
进程管理工具辅助
pm2 start app.js --log-date-format "YYYY-MM-DD HH:mm:ss" --merge-logs
```。
参考来源:[1,2,3,4,5,6,7,8,9,10]