Menu fechado

Arquitetos de Sistemas

express e eventos com winston logger configurado interrompe o registro em arquivo na ocorrência de erro ,javascript ,node.js ,expresso ,Winston ,node.js-events [RESOLVIDO]

Visualizando 0 resposta da discussão
  • Autor
    Posts
    • #82446 Responder
      Anderson Paraibano
      Participante

      Resolvido: Express e Eventos com Winston Logger Configurado Interrompe o Registro em Arquivo na Ocorrência de Erro

      Introdução

      No desenvolvimento de aplicativos JavaScript utilizando o ambiente Node.js, é comum o uso de frameworks como o Express para criar APIs e servidores web. Além disso, a biblioteca Winston é frequentemente utilizada para realizar o registro de logs em Node.js. Neste artigo, abordaremos a integração do Express com o Winston Logger, configurado de forma a interromper o registro em arquivo na ocorrência de erros. Exploraremos como a combinação dessas duas ferramentas pode ser benéfica para o desenvolvimento de aplicações robustas e escaláveis.

      O que é o Express?

      O Express é um framework web rápido, flexível e minimalista para Node.js. Ele fornece uma maneira simples de criar APIs e servidores web, permitindo a definição de rotas, middleware e muito mais. O Express é amplamente utilizado pela comunidade Node.js devido à sua simplicidade e eficiência.

      O que é o Winston Logger?

      O Winston Logger é uma biblioteca popular para registro de logs em Node.js. Ele oferece recursos avançados, como suporte a vários formatos de registro, níveis de log personalizáveis e transporte para diferentes destinos, como arquivos, consoles, bancos de dados, entre outros. O Winston é altamente configurável e adequado para uso em diversas aplicações.

      Integrando o Express com o Winston Logger

      A integração do Express com o Winston Logger pode ser feita de maneira simples e direta. Primeiramente, é necessário instalar as dependências necessárias. Para isso, utilize o npm (gerenciador de pacotes do Node.js) executando o seguinte comando:

      Copy code
      npm install express winston
      Com as dependências instaladas, podemos prosseguir com a configuração do Winston Logger no Express. Vamos considerar um cenário em que desejamos interromper o registro em arquivo sempre que ocorrer um erro na aplicação.

      javascript
      Copy code
      const express = require(‘express’);
      const winston = require(‘winston’);

      const app = express();

      // Configuração do Winston Logger
      const logger = winston.createLogger({
      transports: [
      new winston.transports.Console(), // Transporte para o console
      new winston.transports.File({ filename: ‘app.log’ }) // Transporte para arquivo
      ]
      });

      // Middleware para registro de logs
      app.use((req, res, next) => {
      // Intercepta erros ocorridos durante o processamento da requisição
      res.on(‘finish’, () => {
      if (res.statusCode >= 400) {
      logger.error([${req.method}] ${req.url} - ${res.statusCode});
      } else {
      logger.info([${req.method}] ${req.url} - ${res.statusCode});
      }
      });

      next();
      });

      // Rotas da aplicação
      app.get(‘/’, (req, res) => {
      res.send(‘Olá, mundo!’);
      });

      // Middleware de tratamento de erros
      app.use((err, req, res, next) => {
      logger.error(err); // Registra o erro no Winston Logger
      res.status(500).send(‘Ocorreu um erro interno.’);
      });

      // Inicialização do servidor
      app.listen(3000, () => {
      logger.info(‘Servidor iniciado na porta 3000.’);
      });
      Explicação do Código

      No código acima, importamos as bibliotecas Express e Winston Logger. Em seguida, criamos uma instância do Express e configuramos o Winston Logger para utilizar dois tipos de transporte: o console e um arquivo chamado “app.log”. O transporte para o console é responsável por exibir os logs no terminal, enquanto o transporte para arquivo registra os logs em um arquivo específico.

      Em seguida, definimos um middleware no Express para realizar o registro de logs a cada requisição recebida. Utilizamos o evento ‘finish’ do objeto de resposta (res) para capturar o momento em que a resposta foi enviada ao cliente. Verificamos se o código de status da resposta indica um erro (status code >= 400) e registramos a informação correspondente no Winston Logger.

      Além disso, adicionamos um middleware de tratamento de erros para capturar erros não tratados nas rotas e registrar os detalhes no Winston Logger. Dessa forma, mesmo que um erro ocorra durante o processamento da requisição, ele será devidamente registrado e tratado.

      Conclusão

      Neste artigo, exploramos a integração do Express com o Winston Logger, configurado de forma a interromper o registro em arquivo na ocorrência de erros. Essa integração permite o desenvolvimento de aplicações Node.js mais robustas, fornecendo um registro detalhado de eventos e erros. O Winston Logger oferece uma ampla gama de recursos e opções de configuração, permitindo que os desenvolvedores personalizem o registro de logs de acordo com suas necessidades. Combinado com o poder do Express, essa solução é ideal para o desenvolvimento de aplicações escaláveis e confiáveis.

Visualizando 0 resposta da discussão
Responder a: express e eventos com winston logger configurado interrompe o registro em arquivo na ocorrência de erro ,javascript ,node.js ,expresso ,Winston ,node.js-events [RESOLVIDO]
Sua informação:





<a href="" title="" rel="" target=""> <blockquote cite=""> <code> <pre class=""> <em> <strong> <del datetime="" cite=""> <ins datetime="" cite=""> <ul> <ol start=""> <li> <img src="" border="" alt="" height="" width="">

Nova denúncia

Fechar