Tengo una tarea: rotar el archivo de registro cuando su tamaño supera los 2 millones. El nombre del archivo de registro debe ser 'log_ unixtimestamp .log' o 'log_ number .log'
Traté de codificarlo usando tanto transports.File como transports.DailyRotateFile
Mi mejor resultado: cada vez que se escribe el registro, se crea el nuevo archivo de registro con la marca de tiempo real
mi código
const fileTransport = transports.DailyRotateFile({ format: format.combine(/*...*/), maxSize: '2m', maxFiles: 3, fileName: 'logs/log_%DATE%.log', datePattern: 'X', createSymlink: true, symlinkName: 'logs/log_%DATE%.log' close: false, })resultado:
/logs .../log_1635758863.log //1 KB .../log_1635758865.log //1 KB .../log_1635758870.log //1 KBTambién intenté usar un nombre de archivo dinámico pero no se actualiza en tiempo de ejecución
const generateTimestamp = Math.round(new Date().getTime() / 1000) const fileTransport = transports.DailyRotateFile({ format: format.combine(/*...*/), maxSize: '2m', maxFiles: 3, fileName: `logs/log%DATE%${generateTimestamp()}.log`, datePattern: '_', createSymlink: true, symlinkName: `logs/log%DATE%${generateTimestamp()}.log` close: false, })resultado
/logs .../log_1635758880.log //2 MB .../log_1635758880.log.1 //2 MB .../log_1635758880.log.2 //2 MBeste codigo no me ayudo
fileTransport.on('new' /*the same with 'rotate'*/, () => { fileTransport.fileName =`logs/log%DATE%${generateTimestamp()}.log`; fileTransport.symlinkName=`logs/log%DATE%${generateTimestamp()}.log`; });