Javascript winston和morgan的自定义日志级别

Javascript winston和morgan的自定义日志级别,javascript,node.js,express,winston,Javascript,Node.js,Express,Winston,我让温斯顿和摩根加入了记录系统。我正试图通过这种方式为morgans api调用添加一个单独的记录器。当我得到一个api调用时,我得到了一个与常规信息不同的输出,我还想将api调用添加到另一个文件中。我该怎么做?我在网上看到,他们建议创建另一个级别,但我想使用winstons默认级别,并添加一个api级别 以下是我所拥有的: const winston = require('winston'); const logger = winston.createLogger({ level:

我让温斯顿和摩根加入了记录系统。我正试图通过这种方式为morgans api调用添加一个单独的记录器。当我得到一个api调用时,我得到了一个与常规信息不同的输出,我还想将api调用添加到另一个文件中。我该怎么做?我在网上看到,他们建议创建另一个级别,但我想使用winstons默认级别,并添加一个api级别

以下是我所拥有的:

const winston = require('winston');

const logger = winston.createLogger({
    level: winston.config.syslog.levels,
    format: winston.format.combine(
        winston.format.timestamp({ format: 'h:mm:ss a YYYY-MM-DD' }),
        winston.format.errors({ stack: true }),
        winston.format.splat(),
        winston.format.json()
    ),
    transports: [
        new winston.transports.File({ filename: 'logger/info.log' }),
        new winston.transports.File({ filename: 'logger/error.log', level: 'error' }),
    ],
    exceptionHandlers: [new winston.transports.File({ filename: 'logger/exceptions.log' })],
    rejectionHandlers: [new winston.transports.File({ filename: 'logger/rejections.log' })],
});


if (process.env.NODE_ENV !== 'production') {
    logger.add(
        new winston.transports.Console({
            level: 'debug',
            handleExceptions: true,
            json: false,
            colorize: true,
            format: winston.format.combine(
                winston.format.colorize({ message: true, level: true }),
                winston.format.combine(winston.format.printf((info) => `${info.level} - ${info.timestamp}: ${info.message}`))
            ),
        })
    );
}

module.exports = logger;