diff --git a/sections/errorhandling/usematurelogger.brazilian-portuguese.md b/sections/errorhandling/usematurelogger.brazilian-portuguese.md new file mode 100644 index 00000000..a1b27717 --- /dev/null +++ b/sections/errorhandling/usematurelogger.brazilian-portuguese.md @@ -0,0 +1,53 @@ +# 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][winston], [bunyan][bunyan] (altamente popular) ou [pino][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. + +[winston]: https://www.npmjs.com/package/winston +[bunyan]: https://www.npmjs.com/package/bunyan +[pino]: https://www.npmjs.com/package/pino + +### Exemplo de Código – Registrador Winston em ação + +```javascript +// 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) + +```javascript +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…