温斯顿超过 maxsize 后我的日志文件不旋转

Winston js. My log files aren't rotating after exceeding maxsize

我有以下温斯顿配置:

'use strict'

import winston from 'winston'
import config from '../../config/environment'

export default winston.createLogger({
  level: 'info',
  format: winston.format.printf(info => info.message),
  transports: [
    new winston.transports.Console(),
    new winston.transports.File({
      filename: `${config.logsPath}/express.error.log`,
      maxsize: 300,
      level: 'error'
    }),
    new winston.transports.File({
      filename: `${config.logsPath}/express.log`,
      maxsize: 300
    })]
})

None 个文件在达到 300 字节阈值后轮转。

您使用的版本 3.0.0 候选发布版在其 File 传输中存在错误。基本上,一旦超过 maxsize 阈值,内部 self.filename 变量不会被更新,因此 _createStream 将重新打开附加流到现有文件并继续写入它。它第一次工作是因为 self.filename 在从选项初始化时设置。

我提交了 PR 解决了这个问题。或者,如果这不是问题,您可以恢复到 2.4.0