Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

122
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda