Node.js日志轮转怎么设置
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,也会提前触发轮转。整个过程完全自动化,开发者只需要关注业务逻辑即可。
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Ableton Live 是面向音乐制作人与现场表演者的数字音频工作站,提供编曲视图、独具特色的现场视图、音频录制、MIDI创作、实时变速、乐器及效果器。Mac版原生支持Apple芯片,并可连接音频接口、MIDI控制器和第三方插件。
Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。














