Javascript Winston-使用动态文件名进行日志记录(每个.feature文件有单独的日志文件)

Javascript Winston-使用动态文件名进行日志记录(每个.feature文件有单独的日志文件),javascript,logging,protractor,winston,Javascript,Logging,Protractor,Winston,我正在使用量角器Cumber框架进行测试自动化。对于日志记录,我使用“Winston”。我有多个功能文件。我想以功能文件的名义保留日志文件,以便更好地跟踪 到目前为止,我在'filename'属性[filename:'c:\QAAutomation\info.log']中硬编码了文件名,如下所示 Winston中是否有指定动态文件名的选项 var winston=require('winston'); 要求('winston-daily-rotate-file'); var矩=要求(“矩时区”

我正在使用量角器Cumber框架进行测试自动化。对于日志记录,我使用“Winston”。我有多个功能文件。我想以功能文件的名义保留日志文件,以便更好地跟踪

到目前为止,我在'filename'属性[filename:'c:\QAAutomation\info.log']中硬编码了文件名,如下所示

Winston中是否有指定动态文件名的选项

var winston=require('winston');
要求('winston-daily-rotate-file');
var矩=要求(“矩时区”);
winston.emitters=true;
var记录器=新的winston.logger({
运输:[
新winston.transports.DailyRotateFile({
级别:“信息”,
名称:“信息文件”,
文件名:“c:\\QAAutomation\\info.log”,
handleExceptions:正确,
json:false,
是的,
datePattern:'yyyyymmdd',
最大大小:5242880,//5MB
最大文件数:60,
着色:假,
格式化程序:customFileFormatter,
时间戳:函数(){
返回力矩().格式(“MM-DD-YYYY HH:MM:ss.SSS”);
}
})
],
exitOnError:false
});
module.exports=记录器;
module.exports.stream={
写入:函数(消息、编码){
logger.verbose(消息);
}
};
函数customFileFormatter(选项){
//返回字符串将传递给记录器。
返回`{“timestamp”:“${options.timestamp()}”,“level”:“${options.level}”,“message”:“${(options.message?options.message:”)
+(options.meta&&Object.keys(options.meta).length?'\n\t'+JSON.stringify(options.meta):'')}`;
}