发布于2026-07-12 阅读(0)
扫一扫,手机访问
日志管理是 Node.js 应用运维中一个绕不开的话题,尤其是当生产环境跑上几天、几周后,日志文件膨胀起来,不仅占用磁盘,还让排查问题变得痛苦。这时候,日志轮转就成了刚需——自动切割、归档、清理,一套流程下来省心省力。好在社区里已经有非常成熟的方案,winston 搭配 winston-daily-rotate-file 就是目前最主流的做法之一。下面直接来看具体怎么配置。

npm install winston winston-daily-rotate-file
const winston = require('winston');
const { DailyRotateFile } = require('winston-daily-rotate-file');
DailyRotateFile 的 transport 选项:const logger = new winston.Logger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.printf(({ timestamp, level, message }) => {
return `${timestamp} ${level}: ${message}`;
})
),
transports: [
new DailyRotateFile({
filename: 'logs/application-%DATE%.log', // 文件名中嵌入日期
datePattern: 'YYYY-MM-DD', // 按天轮转
zippedArchive: true, // 轮转后压缩归档
maxSize: '20m', // 单个文件最大20MB
maxFiles: '14d' // 只保留最近14天的日志
})
]
});
这里几个参数值得留意:datePattern 决定了按什么粒度轮转,按天是最常见的;maxSize 可以在文件还没到日期轮转点但已经超限时提前触发切割;maxFiles 则控制历史保留时长,避免磁盘被旧日志填满。另外,zippedArchive: true 会自动把切下来的文件打包成 gz,对节省空间很有帮助。
logger.info('Hello, world!');
这样配置好之后,每天零点左右,应用会自动生成一个新的日志文件,旧文件会被压缩并保留14天。如果某一天日志量特别大,单个文件增长到20MB,也会提前触发轮转。整个过程完全自动化,开发者只需要关注业务逻辑即可。
上一篇:Node.js日志文件在哪查找
下一篇:Node.js日志中错误码含义
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8