You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

winston-daily-rotate-file日志切分规则疑问及配置求助

关于Winston日志轮转的两个问题解答

1. 时间到了就生成新文件是预期行为吗?

这绝对是预期行为!你用的DailyRotateTransport(Winston的日志轮转插件)本身就是设计成同时基于时间间隔和文件大小来触发轮转的:

  • 只要时间走到了datePattern定义的间隔节点(你设的是YYYY-MM-DDTHH-mm,也就是每分钟都会触发检查),不管当前日志文件有没有写满maxsize,都会自动生成带当前时间戳的新文件。
  • 反过来,如果文件先写满了maxsize,哪怕时间间隔没到,也会立刻轮转生成新文件。

你的测试场景里,因为datePattern精确到了分钟,所以只要过了一分钟,系统就会检测到当前时间和日志文件名里的分钟不匹配,直接创建新文件——这完全符合插件的设计逻辑,不是配置出错了。

2. 怎么让日志只按大小轮转,去掉自动加的时间戳?

如果你的核心需求是只有文件写满时才轮转,完全不需要时间触发,那别用DailyRotateTransport了,直接用Winston自带的基础File传输器就行!这个传输器支持maxsize和maxFiles配置,只会在文件达到指定大小后才创建新文件,新文件的命名是原文件名加数字后缀(比如application.log.1、application.log.2),不会自动加时间戳。

给你改好的配置示例:

{
  level: 'info',
  filename: 'logs/application.log',
  maxsize: 1024, // 对应你测试用的1k
  maxFiles: 3,
  audit: "logs/application-audit.json"
}

要是你非得用DailyRotateTransport(比如依赖它的audit功能),那可以试试把datePattern设成一个固定不变的字符串(比如'fixed'),但这种做法其实违背了这个插件的设计初衷,可能会有未知问题,还是建议直接换用基础File传输器更稳妥。

内容的提问来源于stack exchange,提问作者phymart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:31:43