我正在使用量角器黄瓜框架进行测试自动化。对于记录我使用'温斯顿'。我有多个功能文件。我想将日志文件保留在功能文件的名称中,以便更好地跟踪。
截至目前,我在“filename”属性[filename:'c:\ QAAutomation \ info.log']中显示了硬编码文件名,如下所示。
Winston中有任何选项可以分配动态文件名吗?
var winston = require('winston');
require('winston-daily-rotate-file');
var moment = require('moment-timezone');
winston.emitErrs = true;
var logger = new winston.Logger({
transports: [
new winston.transports.DailyRotateFile({
level: 'info',
name: 'info-file',
filename: 'c:\\QAAutomation\\info.log',
handleExceptions: true,
json: false,
prepend: true,
datePattern: 'yyyyMMdd',
maxsize: 5242880, //5MB
maxFiles: 60,
colorize: false,
formatter: customFileFormatter,
timestamp: function() {
return moment().format("MM-DD-YYYY HH:mm:ss.SSS");
}
})
],
exitOnError: false
});
module.exports = logger;
module.exports.stream = {
write: function(message, encoding) {
logger.verbose(message);
}
};
function customFileFormatter(options) {
// Return string will be passed to logger.
return `{"timestamp": "${options.timestamp()}", "level": "${options.level}", "message": "${(options.message ? options.message : '')
+ (options.meta && Object.keys(options.meta).length ? '\n\t' + JSON.stringify(options.meta) : '')}"}`;
}