Node.js 在温斯顿有可能每小时轮换一次原木吗?

Node.js 在温斯顿有可能每小时轮换一次原木吗?,node.js,winston,Node.js,Winston,嗨,我有我们生产团队的要求,我需要每小时创建日志,我知道winston每天都支持,但这对我没有帮助。 有可能做到这一点吗 您可以每小时旋转Winston日志。您需要在日期模式中提供小时(HH) 请检查下面的示例代码: 文件名如下:log\u File\u name.log.2013-12-17T16,log\u File\u name.log.2013-12-17T17等 我希望这会有所帮助。更新 正如@Tom所提到的,旋转原木已移出温斯顿,并在需要时装载 npm安装温斯顿每日轮换文件 代码示

嗨,我有我们生产团队的要求,我需要每小时创建日志,我知道winston每天都支持,但这对我没有帮助。
有可能做到这一点吗

您可以每小时旋转Winston日志。您需要在日期模式中提供小时(
HH

请检查下面的示例代码:

文件名如下:
log\u File\u name.log.2013-12-17T16
log\u File\u name.log.2013-12-17T17

我希望这会有所帮助。

更新 正如@Tom所提到的,旋转原木已移出温斯顿,并在需要时装载

npm安装温斯顿每日轮换文件

代码示例

const winston = require('winston')
require('winston-daily-rotate-file');
const path = require('path');
let transports  = [];
const { createLogger } = winston;
transports.push(
    new winston.transports.DailyRotateFile({
      name: 'file',
      datePattern: 'YYYY-MM-DD-THH-mm',
      filename: path.join(__dirname, 'rotate_logs', 'log_file.log')
    })
)
var logger = createLogger({ transports: transports })
要测试上述代码的完整示例

dataLog(0)
function dataLog(secondsPassed){
    setTimeout(function(){
        let dateNow = new Date();
        logger.info(`seconds passed ${secondsPassed} and Time is ${dateNow}`);
        console.log(`${secondsPassed}`);
        if(dataLog != 130){ //when reaches 130 seconds stops logging
              dataLog(++secondsPassed);
        }
    },1000);
}
附件中提到的结果文件

额外:我创建了具有不同用例的winston示例,可能会有所帮助

我正在尝试使用DailyRotateFile,但出现了一个错误。我想请你看看这个问题@AndréLuiz,Winston library()似乎最近发生了变化(),在2015年11月底,
DailyRotateFile
transport已移动到一个单独的模块
Winston daily rotate file
。您只需将该模块添加到package.json和
require('winston-daily-rotate-file')
。我将很快更新我的答案。我已经安装了模块,它给我相同的错误=/。我用的是温斯顿快车
dataLog(0)
function dataLog(secondsPassed){
    setTimeout(function(){
        let dateNow = new Date();
        logger.info(`seconds passed ${secondsPassed} and Time is ${dateNow}`);
        console.log(`${secondsPassed}`);
        if(dataLog != 130){ //when reaches 130 seconds stops logging
              dataLog(++secondsPassed);
        }
    },1000);
}