apx-logger

Módulo dedicado a padronizar os logs das aplicações.

Usage no npm install needed!

<script type="module">
  import apxLogger from 'https://cdn.skypack.dev/apx-logger';
</script>

README

apx-logger

Módulo dedicado a padronizar os logs das aplicações.

Instalação

npm install apx-logger -P

Utilização

A interface expõe um objeto com três propriedades:

  • loggerMiddleware - Seta uma instancia do logger na request;
  • makeLogger - Cria uma instancia do logger configurado;
  • logger - Instancia do Winston.

Middleware

O middleware exposto na propriedade loggerMiddleware vai setar uma propriedade req.logger com uma instancia configurada para a request atual, padronizando o formato das mensagens logadas por middleware posteriores.

Para utiliza em uma aplicação express, registre o middleware após as rotas:

const app = require('express')();
const { loggerMiddleware } = require('apx-logger');

app.use(loggerMiddleware);

app.use(...); // suas rotas

Para logar nos middleware porteriores, utilize o método correspondente ao nível desejado:

const { ValidationError } = require('apx-errors');

module.exports = (req, res, next) => {
  req.logger.error('Erro!');
}

Monitoramento

Os níveis de log (error, warn, info) são utilizados para monitorar as aplicações. Considere as seguintes regras para garantir um monitoramento eficiente:

  • ERROR:
    • Deve ser logado apenas uma vez na vida de uma request;
    • Não há processamento posterior;
    • Indica incidentes que exigem ação do banco;
    • Geralmente associados a status 500.
  • WARN:
    • Deve ser logado apenas uma vez na vida de uma request;
    • Não há processamento posterior;
    • Indica incidentes que exigem ação do usuário;
    • Geralmente associados a status 400.
  • SUCCESS:
    • Deve ser logado apenas uma vez na vida de uma request;
    • Não há processamento posterior;
    • Indica requests processadas com sucesso;
    • Geralmente associados a status 200.
  • INFO:
    • Pode ser logado inúmeras vezes (não é contabilizado);
    • Utilizado para logar os passos do processamento de uma request.