function createLogger()

in apps/mountebank-mock/mountebank-source/src/util/logger.js [45:80]


function createLogger (options) {
    if (!options.log) {
        options.log = { level: 'info' };
    }
    if (!options.log.transports) {
        options.log.transports = {
            file: {
                path: 'mb.log',
                format: 'json'
            }
        };
    }

    const winstonLogger = winston.createLogger({ level: options.log.level }),
        logger = scopedLogger.create(winstonLogger, `[mb:${options.port}] `),
        consoleConfig = options.log.transports.console,
        fileConfig = options.log.transports.file;

    if (consoleConfig) {
        winstonLogger.add(new winston.transports.Console({
            format: createWinstonFormat(winston.format, consoleConfig)
        }));
    }
    if (fileConfig) {
        initializeLogfile(fileConfig.path);
        winstonLogger.add(new winston.transports.File({
            filename: fileConfig.path,
            maxsize: '20m',
            maxFiles: 5,
            tailable: true,
            format: createWinstonFormat(winston.format, fileConfig)
        }));
    }

    return logger;
}