以下是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]