Cómo rotar los registros diariamente usando Winston, excepto el primer día

Necesito rotar los registros diariamente, excepto el archivo del día actual. Estoy usando las bibliotecas de archivos de rotación diaria de Winston y Winston .

En el siguiente ejemplo, se genera un archivo “info.log.2016-08-09” apenas la primera vez que ejecuto el nodo.

Pero, realmente necesito generar el archivo “info.log”, y después de este día, debería cambiar su nombre a “info.log.2016-08-09”, y crear un nuevo “info.log” para el día actual. Entiendo que este es el comportamiento normal en otras aplicaciones.

var logger = new (winston.Logger)({ transports: [ new dailyRotateFile( { name: 'cronInfo', filename: path.join(__dirname,"log", "info.log"), level: 'info', timestamp: function(){ return utils.formatDate(new Date(), "yyyy-mm-dd'T'HH:MM:ss.l'Z'") }, formatter: function(options) { return options.timestamp() +' ['+ options.level.toUpperCase() +'] '+ (undefined !== options.message ? options.message : '') + (options.meta && Object.keys(options.meta).length ? '\n\t'+ JSON.stringify(options.meta) : '' ); }, json:false, datePattern:".yyyy-MM-dd" }) ] }); 

Bueno, una solución puede ser tener un transporte más a info.log

Al igual que esto:

 var logger = new (winston.Logger)({ transports: [ new dailyRotateFile( { //your definition of rotate file }), new (winston.transports.File)({ filename: 'info.log' }) ] }); 

Y luego configure un cron para eliminar info.log a la medianoche, es decir , la progtwigción de nodos

Sin embargo, con este enfoque puede haber poca inconsistencia, si algo se ejecuta hasta la medianoche, puede registrar algunas líneas en info.log que pertenece al día siguiente y luego se elimina, por lo que info.log puede estar incompleto.

Pero todos los registros con este formato info.log.2016-08-09 permanecen completos y no se ven afectados.

Por lo tanto, se debe considerar si es muy pequeña la posibilidad de tener un info.log incompleto durante un día. (sin embargo, puede crear un verificador más avanzado que no solo elimine el archivo, sino que busque el archivo del nuevo día y, de ser así, busque el contenido y luego elimine solo los registros de días anteriores de info.log y no lo elimine). de repente)