在Debian系統上,Node.js的日志輪轉機制可以通過配置文件或代碼實現。以下是使用winston
庫進行日志輪轉配置的示例:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({
filename: 'error.log',
level: 'error',
maxsize: 10485760, // 10MB
maxfiles: 5, // 保留5個備份文件
}),
new winston.transports.File({
filename: 'combined.log',
}),
new winston.transports.Console(),
],
});
logger.info('這是一條信息日志');
logger.error('這是一條錯誤日志');
在這個示例中,我們使用RotatingFileHandler
來實現日志輪轉。maxsize
參數設置每個日志文件的最大大?。?0MB),maxfiles
參數設置保留的舊日志文件數量(5個)。當日志文件達到指定大小時,新的日志將被創建,舊日志文件將被重命名并保留。
此外,對于Docker容器化應用,可以使用Docker的日志驅動來管理日志輪轉。例如,使用json-file
日志驅動,并通過--log-opt
參數配置日志輪轉策略:
docker run -d --name my_app --log-driver local --log-opt max-size=10m --log-opt max-file=3 my_image
在這個示例中,每個日志文件的最大大小設置為10MB,并保留3個舊日志文件。
通過上述配置,可以有效地管理Node.js應用的日志輪轉,確保日志文件不會過大,且方便后續的日志分析和問題追蹤。