Cómo hacer girar el archivo diario de Winston para iniciar sesión en el archivo de nivel correspondiente

He definido niveles personalizados para mi aplicación. Son los siguientes.

protected levels: Level = {
        "error": 0,
        "warn": 1,
        "info": 2,
        "debug": 3,
        "trace": 4
    };

Estoy usando el transporte diario de rotación de archivos para obtener un registro diario en archivos separados.

    const options: Object = {
        name: this.level,
        filename: logFilePath,
        dirname: WinstonLogAgent.DIR_LOG,
        datePattern: "yyyyMMdd.",
        prepend: true,
        level: this.level,
        levels: this.levels,
        maxsize: this.maxFileSize,
        maxFiles: this.maxFileCount,
        handleExceptions: true,
        humanReadableUnhandledException: true
    };

    this.transportInstance.push(new (winston.transports.DailyRotateFile)(options));

Si defino que el nivel de registro es 'info', creará un archivo de registro llamado info.log y registrará los niveles 'info', 'warn' y 'error' (se ignorará el rastreo y la depuración).

Pero el comportamiento que quería era diferente. Si estoy especificando el nivel para que sea 'info' y estoy registrando los niveles 'info', 'warn' y 'error', entonces debería haber archivos separados creados para cada tipo de registro. es decir, el nivel 'info' debe registrarse en info.log y el nivel 'warn' para registrarse en warn.log.

He intentado especificar cinco diferentes transportes diarios de rotación de archivos, cada uno con un nivel único. Entonces, el problema que encuentro es que hay entradas de registro duplicadas. Por ejemplo, si estoy registrando un nivel de 'error', se registrará en info.log, warn.log y error.log cuando el nivel de registro esté configurado en info.

¿Cómo puedo lograr mi objetivo?

Respuestas a la pregunta(1)

Su respuesta a la pregunta