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

时间:2017-04-17 17:29:25

标签: javascript logging protractor winston

我正在使用量角器黄瓜框架进行测试自动化。对于记录我使用'温斯顿'。我有多个功能文件。我想将日志文件保留在功能文件的名称中,以便更好地跟踪。

截至目前,我在“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) : '')}"}`;
}

0 个答案:

没有答案