Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何使Winston每日轮换文件每周轮换_Logging_Winston - Fatal编程技术网

Logging 如何使Winston每日轮换文件每周轮换

Logging 如何使Winston每日轮换文件每周轮换,logging,winston,Logging,Winston,我正在为一个节点项目使用winston daily rotate文件。如何使日志文件每周轮换一次 根据 我们可以看到 datePattern:“一个表示要用于旋转的文件的字符串。此字符串中使用的元字符将指示文件旋转的频率。例如,如果您的datePattern只是'HH',您将得到24个日志文件,这些文件每天都会被提取和附加。(默认值:'YYYY-MM-DD')” 为了回答您的问题,让日志文件每周循环的一个简单方法是设置datePattern:'YYYY-w',其中w是一年中的一周:12。。。52

我正在为一个节点项目使用winston daily rotate文件。如何使日志文件每周轮换一次

根据 我们可以看到
datePattern
:“一个表示要用于旋转的文件的字符串。此字符串中使用的元字符将指示文件旋转的频率。例如,如果您的datePattern只是'HH',您将得到24个日志文件,这些文件每天都会被提取和附加。(默认值:'YYYY-MM-DD')”

为了回答您的问题,让日志文件每周循环的一个简单方法是设置
datePattern:'YYYY-w'
,其中
w
是一年中的一周:12。。。52 53.
有关datePattern的更多选项,请参见

下面显示了一个简单的用法

  const winston = require('winston');
  const DailyRotateFile = require('winston-daily-rotate-file');

  var winston = require('winston');
  require('winston-daily-rotate-file');

  var transport = new winston.transports.DailyRotateFile({
    filename: 'application-%DATE%.log',
    datePattern: 'YYYY-w'
  });

  transport.on('rotate', function(oldFilename, newFilename) {
     logger.info({'message':'New file created!'});
  });

  var logger = winston.createLogger({
    level: 'info',
    transports: [
      transport
    ]
  });

  logger.info('Hello World!');
因此,日志文件的名称类似于
application year week.log


例如,从2020年7月6日到2020年7月12日的一周是2020年的第28周。这意味着本周将创建文件
application-2020-28.log
,下周将创建文件
application-2020-29.log
,等等。您可以从中计算一年中的哪一周