Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

115
Vistas
Middleware de inicio de sesión con winston y morgan

Creo un middleware de registrador usando winston y morgan como se muestra a continuación:

 const format = winston.format.combine(
 winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:ms' }),
 winston.format.printf(
 (info) => `${info.timestamp} ${info.level}: ${info.message}`,
 ),
 )

 const transports = [
 new winston.transports.Console(),
 new winston.transports.File({
 filename: 'logs/error.log',
 level: 'error',
 }),
 new winston.transports.File({ filename: 'logs/all.log' }),
 ]

 const logger = winston.createLogger({
 format,
 level: "info",
 transports
 })

 const stream = {
 write: (message) => logger.log(message),
 };

 const morganMiddleware = morgan(
 ":remote-addr :method :url :status :res[content-length] - :response-time ms",
 { stream }
 );

 app.use(morganMiddleware);

Pero cuando mi inicio se está ejecutando y recibo el primer registro, winston me arroja este error:

 level[LEVEL] = level.level;
 ^

TypeError: Cannot create property 'Symbol(level)' on string '::1 GET /api/amr/applications?order=ASC&sortBy=application.lastIncidentAt 304 - - 380.459 ms

¿alguien puede decirme qué está mal con mi configuración de winston/morgan?

¡Gracias por cualquier ayuda!

almost 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Winston Logger espera dos argumentos. Entonces en lugar de esto:

 const stream = {
 write: (message) => logger.log(message),
};

Hacer esto:

const stream = {
  write: (message) => {
    // Usar el nivel "info" por defecto o puedes analizar el mensaje para extraer el nivel si lo incluyes en el mensaje
    logger.log('info', message);
  },
};
almost 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda