Soy un principiante en Node JS. Estoy trabajando en el archivo de registro de Winston. Tengo un problema con el registrador de Winston (nodo JS). Cuando ejecuto el comando "npm start", muestra algunos registros de nivel de error tanto en el archivo de registro de errores como en el archivo de registro de información en una ejecución inicial. Para todos los demás casos, funciona bien.
Además, el archivo de advertencia muestra mensajes de nivel de información y de error. En el archivo de depuración, también se muestran los mensajes de error y de depuración todo el tiempo. ¿Cuál puede ser la razón de ello? Cómo registrar mensajes de la manera correcta de tal manera que los mensajes de error se registren en el archivo de errores, los mensajes de información en el archivo de información, los mensajes de advertencia en el archivo de advertencia y los mensajes de depuración en el archivo de depuración. Consulte el siguiente código.
Código
const { createLogger, transports, format } = require('winston'); const { combine, timestamp, prettyPrint, printf } = format; const customFormat = printf(({ level, message, timestamp }) => { if (!message.includes('&')) { return `${timestamp} ${level}: ${message}`; } else { return `${timestamp} - ${message.split('&')[0]} - ${level}: ${message.split('&')[1]}`; } }); const logger = createLogger({ format: combine( timestamp(), // prettyPrint(), customFormat ), transports: [ new transports.File({ filename: `${__dirname}/log/error.log`, level: 'error' }), new transports.File({ filename: `${__dirname}/log/info.log`, level: 'info' }), new transports.File({ filename: `${__dirname}/log/warn.log`, level: 'warn' }), new transports.File({ filename: `${__dirname}/log/debug.log`, level: 'debug' }), new transports.Console({ timestamp: true }), ], exceptionHandlers: [ new transports.Console({ json: false, timestamp: true }), new transports.File({ filename: `${__dirname}/log/exceptions.log`, json: false }) ], exitOnError: false }); module.exports = logger;