我使用winston-daily-rotate-file作为Node项目。如何使日志文件每周轮换一次?
答案 0 :(得分:1)
根据winston-daily-rotate-file的描述
我们可以看到
的选项
datePattern
:“表示要旋转的moment.js date format的字符串。此字符串中使用的元字符将指示文件旋转的频率。例如,如果datePattern只是'HH',最终将每天收集并附加到24个日志文件中。(默认值:'YYYY-MM-DD')“
因此,要回答您的问题,一种使日志文件每周轮换的简单方法是设置datePattern: 'YYYY-w'
,其中w
是一年中的第几周:1 2 ... 5253。
您可以在moment.js date format
简单用法如下所示。
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
,依此类推。您可以计算出该文件的哪一周年份是从这个Week Number Calculator