Skip to main content

Use um agente de log maduro para aumentar a visibilidade de erros

Explicação em um Parágrafo

Todos nós amamos console.log, mas obviamente, um logger respeitável e persistente como Winston (altamente popular) ou pino (o novato que está focado no desempenho) é obrigatório para projetos sérios. Um conjunto de práticas e ferramentas ajudará a entender os erros muito mais rapidamente - (1) logar freqüentemente usando diferentes níveis (depuração, informação, erro), (2) ao registrar, fornecer informações contextuais como objetos JSON, ver exemplo abaixo, (3) observe e filtre os logs usando uma API de consulta de log (incorporada na maioria dos registradores) ou um software de visualização de logs, (4) Expor e selecionar a declaração de log para a equipe de operação usando ferramentas de inteligência operacional como o Splunk.

Exemplo de Código – Registrador Winston em ação

// seu objeto registrador centralizado
var logger = new winston.Logger({
level: 'info',
transports: [
new (winston.transports.Console)()
]
});

// código personalizado em algum lugar usando o registrador
logger.log('info', 'Mensagem de Log de Teste com algum parâmetro %s', 'algum parâmetro', { anything: 'Este é um metadado' });

Exemplo de código - Consultando a pasta de log (procurando por entradas)

var options = {
from: new Date - 24 * 60 * 60 * 1000,
until: new Date,
limit: 10,
start: 0,
order: 'desc',
fields: ['message']
};


// Encontrar itens registrados entre hoje e ontem.
winston.query(options, function (err, results) {
// executar callback com os resultados
});

Citação de Blog: "Requisitos do Registrador"

Do blog Strong Loop

Vamos identificar alguns requisitos (para um registrador):

  1. Carimbo de data / hora de cada linha de log. Este é bastante auto-explicativo - você deve ser capaz de dizer quando cada entrada de log ocorreu.
  2. Formato de registro deve ser facilmente entendido tanto por seres humanos, quanto para máquinas.
  3. Permite múltiplos fluxos de destino configuráveis. Por exemplo, você pode estar gravando logs de rastreio em um arquivo, mas quando um erro é encontrado, grava no mesmo arquivo, depois no arquivo de erro e envia um email ao mesmo tempo…