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

120
Vistas
Loggin middleware with winston and morgan

I create a logger middleware with using winston and morgan like below:

  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);

But when my start is running and receive first log, winston throw me this 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

can someone tell me what is wrong with my winston/morgan configuration?

thanks for any help!

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

0

Winston Logger expects two arguments. So instead of this:

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

Do this:

 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