Node.js日志轮转怎么设置
作者:WeekendLife
时间:2026-07-12
浏览:0
Node.js日志轮转基于winston与winston-daily-rotate-file实现,可配置按天切分、单文件大小上限20MB、保留14天历史,并自动压缩归档,从而完成日志的自动化切割与清理,有效管理磁盘空间。
本文目录
日志管理是 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');
- 接下来创建 logger 实例,这是核心部分。关键在于配置
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 记录日志:
logger.info('Hello, world!');
这样配置好之后,每天零点左右,应用会自动生成一个新的日志文件,旧文件会被压缩并保留14天。如果某一天日志量特别大,单个文件增长到20MB,也会提前触发轮转。整个过程完全自动化,开发者只需要关注业务逻辑即可。
作者最新文章
漫蛙漫画官方入口
2026-10-13 13:50
漫蛙官网入口免费下载最新版
2026-10-13 13:46
漫蛙网页版入口在哪里
2026-10-13 13:18
漫蛙网页版免费进入
2026-10-13 13:16
漫蛙MANWA网页版登录不迷路
2026-10-13 13:16
上一篇:
Node.js日志文件在哪查找
下一篇:
Node.js日志中错误码含义
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































