哪个记录器与Async一起使用,等待量角器脚本?

时间:2019-05-03 04:30:03

标签: javascript node.js async-await protractor

我一直在使用winston npm模块在量角器中写入日志。一旦量角器代码已迁移到异步状态,等待,日志中就会出现许多同步问题。 (有多个未定义,零)。而且执行也要折腾。

我一直在研究如何配置Winston配置以支持异步等待格式,但是在这方面找不到任何东西。

use strict;
const { createLogger, format, transports } = require('winston');
require('winston-daily-rotate-file');
const fs = require('fs');
const path = require('path');

const env = process.env.NODE_ENV || 'test';
const logDir = 'log';


///#####loggging levels
//{ error: 0, warn: 1, info: 2, verbose: 3, debug: 4, silly: 5 }

// Create the log directory if it does not exist
if (!fs.existsSync(logDir)) {
  fs.mkdirSync(logDir);
}

const dailyRotateFileTransport =  new transports.DailyRotateFile({
  filename: `${logDir}/%DATE%-results.log`,
  datePattern: 'DD-MM-YYYY',
   maxSize: '20m',
    maxFiles: '14d'
});

const logger = createLogger({
  // change level if in dev environment versus production
  //level: env === 'development' ? 'info' : 'debug',
  //giving level as silly so that all logs are added to the file.
  level: env === 'development' ? 'info' : 'silly',

  format: format.combine(
    format.label({ label: path.basename(module.parent.filename) }),
    format.timestamp({ format: 'DD-MM-YYYY HH:mm:ss'}),
    format.printf(info => `${info.timestamp} ${info.level} [${info.label}]: ${info.message}`)
  ),
  transports: [
    new transports.Console({
      level: 'info',
      format: format.combine(
        format.colorize(),
        format.printf(
          info => `${info.timestamp} ${info.level} [${info.label}]: ${info.message}`
        )
      )
    }),
    dailyRotateFileTransport,    
  ],
  exceptionHandlers: [
    new transports.File({ filename: 'exceptions.log' })
  ]
});
module.exports = logger;

上面的配置文件在与基于Promise的量角器脚本一起使用时可以完美地工作,但是当异步等待出现时却会折腾。

任何建议或指示都会有很大帮助。

0 个答案:

没有答案