Estamos utilizando el módulo winston-daily-rotate node.js para iniciar sesión. Estamos manteniendo la carpeta sabia de fecha de registros. Entonces, cada vez que cambia la fecha, estamos usando el detector de eventos de rotación y moviendo el archivo a la nueva carpeta de fecha usando la funcionalidad de cambio de nombre. Después de cambiar el nombre del archivo en la función de devolución de llamada del evento de rotación, el siguiente evento de rotación obtiene un nombre de archivo más antiguo pero no el nombre de archivo renombrado.
A continuación se muestra mi código para el módulo de rotación de winston que produce registros las 24 horas.
¿Qué cambios necesito hacer en el siguiente código?
var installedDate=getTodayDate();// will give the date when service was started let fileTransport = new (winston.transports.DailyRotateFile)({ filename: getININLogPath(), //will give the path to save log files. datePattern: 'YYYY-MM-DD', zippedArchive: true, maxSize: '20k',// size=20kb maxFiles: '14d' }); fileTransport.setMaxListeners(30); fileTransport.on('rotate', (oldFilename, newFilename) => { let currentDate=getTodayDate(); //getTodayDate will give the current date. let newFile = getININLogPath(); // will give the path to save log files. if (currentDate!=installedDate && process.env.ININ_TRACE_ROOT) { installedDate = currentDate; //compare the old date with new one and then rename old date folder to new one fs.rename(newFilename, newFile, (err) => { // eslint-disable-next-line no-console if (err) { console.log('Failed to move the new file into todays folder', err); } else { console.log('Successfully renamed file name to ', newFile); } }); } });
Pero esto después de cambiar el nombre de la función (fs.rename(newFilename, newFile, (err)) viene en la carpeta de fecha anterior, por ejemplo, si la fecha de instalación es 2022-05-23 y el próximo 2022-05-24, los registros del 24 también vienen en el 23 fecha.
Por favor, hágamelo saber si se requiere algún cambio en esto. Cualquier ayuda es muy apreciada.